<% question = @questions.try(:first) %>
<h1><%= question.title %></h1>
我正在尝试使用上面的代码从问题模型中获取第一个问题,然后在HTML中显示它的标题。但是,我正在抛出错误undefined method 'title' for nil:NilClass
自动生成的RoR文件使用question.title
行...为什么不在这里工作?
答案 0 :(得分:1)
question.title
将错误提升为undefined method 'title' for nil:NilClass
,表示question
设置为nil
。您使用
question
<% question = @questions.try(:first) %>
这意味着@questions
为零或@questions.first
返回nil
。
确保在Controller的操作中设置@questions
实例变量,该操作会呈现此特定视图。
def action_name
@questions = Question.all
end
此外,如果您只是想在视图中显示 第一条question
条记录,并且您不打算在任何地方使用@questions
,那么只需设置
def action_name
@question = Question.first
end
并直接在视图中使用它:
<h1><%= @question.try(:title) %></h1>
答案 1 :(得分:0)
看起来@question是零。您是否已在控制器操作中指定了@question。你能在控制器动作中显示你的代码吗?