Извлечение данных из базы данных в rails

#mysql #ruby-on-rails

#mysql #ruby-on-rails

Вопрос:

Я создал rail-приложение, к которому подключаюсь с базой данных mysql

у меня уже есть 2 таблицы users и history

как я могу извлекать данные из этих таблиц, с помощью которых я могу сохранять данные в базе данных

 def register

        if(params[:register])
            @registermsg=Users.where(:username=>params[:register][:username])
            if  @registermsg.length>0
                flash[:success] = "Username exists:#{params[:username]}:"

            else
                @reg = Users.create(user_params)
                @reg.save
                flash[:success] = "success:#{params[:register][:username]}:"

            end

        end
  end

  def user_params
      params.require(:register).permit(:username, :password, :password2)
    end
  

но когда я извлекаю данные от пользователей

 def login

        if session[:user]

            redirect_to '/dash'
        end 

        if(params[:login])

            @login1=Users.where("username=? AND password=?",params[:login][:username],params[:login][:password])
            if  @login1.length==1
                session[:user] = @login1
                hist = History.create(userid: **@login1.id**, ip: request.remote_ip )
// here @login1.id is giving me error

                redirect_to '/dash'
            else
                flash[:success] = "Wrong"


            end

        end
  end
  

@login1=Users.where(«имя пользователя=? И пароль =?», параметры[:login][:username], параметры [:login][:password])

@login1.to_yaml печатает полные данные, как я могу получить идентификатор, имя пользователя и т.д. От @login1

в настоящее время @login1.id возникает ошибка

Я исследовал многие веб-сайты, включая stack overflow, до сих пор у меня не было никакого решения, пожалуйста, помогите

Ответ №1:

Здесь @login1 находится ActiveRelation объект. Вам нужно будет вызвать first , чтобы получить фактический пользовательский объект

   if  @login1.count==1
      session[:user] = @login1.first
      hist = History.create(userid: @login1.first.id, ip: request.remote_ip )
      redirect_to '/dash'