从rails中的数据库中获取数据

时间:2014-07-03 17:30:44

标签: mysql ruby-on-rails

我创建了一个铁路应用程序 我正在连接到mysql数据库

我已经有2个表用户和历史记录

如何从这些表中获取数据 我可以将数据保存到数据库 与

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(" username =?AND password =?",params [:login] [:username],params [:login] [:password])

@ login1.to_yaml正在打印完整数据 如何从@ login1

获取id,用户名等

目前@ login1.id正在收到错误

我在许多网站上研究过包括堆栈溢出到现在为止我没有得到任何解决方案请帮助

1 个答案:

答案 0 :(得分:2)

此处@login1ActiveRelation个对象。您必须致电first以获取实际的用户对象

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