【发布时间】:2012-09-14 20:45:33
【问题描述】:
这是我的索引方法,它试图访问 2 个不同的模型,即会话和电子邮件:
def index
user_session = Session.find_by_user_id(user_id)
if !user_session.blank?
if setting_orig = GlobalSetting.find_by_settings_session_id(user_session.id)
@setting = setting_orig.dup
end
else
@setting = GlobalSetting.first.dup
end
结束
但是,当我尝试创建这个表单时:
<%= form_for(@setting) do |f| %>
<%= f.text_field :username %>
<%= f.password_field :password %>
<%= f.submit "Submit" %>
我看到这个错误,NilClass:Class 的未定义方法'model_name'。如何让它工作,有什么建议吗?
【问题讨论】:
-
查看堆栈跟踪中的行号以找出错误来自代码的何处。看起来@setting 可能是 nil,因为 form_for 必须检查它以找出 model_name。
-
我认为这很混乱,因为我们正在访问 2 个模型,当我评论 user_session = Session.find_by_user_id(user_id) 这一行时,它工作正常
标签: ruby-on-rails ruby-on-rails-3 model controller