我正在关注我的应用程序的RoR教程。我的设置略有不同,我对rails很新,我无法弄清楚如何调整代码。在本教程中,您将创建用户并对其进行登录。在我的应用程序中,我创建了一个拥有许多用户的公司。一切正常。但是,我想在创建新的公司/用户对时签署用户(而不是公司)。初始创建是通过Companies_Controller,而教程中的sign_in代码通过Users_Controller运行。
当我以现有用户身份登录时,它可以工作,但是初始创建永远不会命中Users_Controller,因此它不会登录。
我尝试添加:
sign_in @ company.users
到Companies_Controller的create方法
在SesionsHelper中,sign_in方法如下所示:
def sign_in(用户)
cookies.permanent.signed [:remember_token] = [user.id,user.salt]
self.current_user = user
端
我收到错误:
失败/错误:发布:创建,:公司=> @attr
NoMethodError: undefined method `id' for []:ActiveRecord::Relation # ./app/helpers/sessions_helper.rb:4:in `sign_in' # ./app/controllers/companies_controller.rb:15:in `create'
我不清楚如何将我刚刚在公司创建表单中收集的用户信息传递给SessionsHelper中的方法。或者我是否需要为初始创建编写第二组sign_in方法?任何见解都表示赞赏。