Ruby on rails 为什么赢了';我的查看器是否显示该方法的结果?
happy是一个整数变量,我将其设置为0或1。如果是0,我想显示“否”,如果是1,我想显示“是” 在我的控制器中,我有:Ruby on rails 为什么赢了';我的查看器是否显示该方法的结果?,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,happy是一个整数变量,我将其设置为0或1。如果是0,我想显示“否”,如果是1,我想显示“是” 在我的控制器中,我有: helper_method :happy_to_text def happy_to_text(happy) happy > 0 ? 'Yes' : 'No' end def edit @todo_item = @todo_list.todo_items.find(params[:id]) end 如果我尝试: <td><%= happy_t
helper_method :happy_to_text
def happy_to_text(happy)
happy > 0 ? 'Yes' : 'No'
end
def edit
@todo_item = @todo_list.todo_items.find(params[:id])
end
如果我尝试:
<td><%= happy_to_text(1) %></td>
<td><%= todo_item.happy %></td>
<td><%= happy_to_text(@todo_item.happy) %></td>
我肯定我错过了一些基本的东西,但我被卡住了。任何帮助都将不胜感激。对象
待办事项
为nil
,因为没有为其赋值。看起来您正试图在ERB视图中使用它,这可能意味着它将来自数据库
在控制器操作(视图的操作)中应该有一条语句,它执行以下操作:
def show
@todo_item = TodoItem.find(params[:id])
end
<td><%= happy_to_text(@todo_item.happy) %></td>
在视图代码中,当您在视图中使用变量时,可能只是缺少变量的@
前缀。在这种情况下,您的意思可能是代码如下所示:
def show
@todo_item = TodoItem.find(params[:id])
end
<td><%= happy_to_text(@todo_item.happy) %></td>
否则,您将丢失将值分配给
todo\u项的代码,您需要这样做才能尝试使用该值。todo\u项。happy
为nil
。你能确保它的数值符合你的方法要求吗?谢谢你的快速回复。当我将其更新为nil:NilClass时,我得到了未定义的方法'happy',我的控制器中有以下内容。def edit@todo_item=@todo_list.todo_items.find(参数[:id])end@Chris这是很好的信息,但不足以继续解决这个问题。您没有在@todo_项变量中获取值,这可能是由于以下原因之一:缺少数据库值、模型定义不正确等。您检索值的方式(@todo_项=@todo_列表.todo_项.find(params[:id])
)很奇怪,但可能适合您的应用程序。请发布TodoList和TodoItem的模型,以及编辑操作的日志。您可以单击问题下方(评论上方)的edit
链接,将此信息添加到问题中。我不确定我做了哪些不同的操作,但它起到了作用。谢谢你的帮助!