我的 ApplicationHelper 文件中有一个可以正常工作的助手:
def latest_issue
@issue = Issue.find(:all, :order => "id DESC", :limit => 1)
return @issue
end
之后, using@issue
在任何视图中都可以正常工作,但考虑到@issue
有一个名为message
using的列会@issue.message
返回无方法错误。
任何帮助都会很棒!干杯。
我的 ApplicationHelper 文件中有一个可以正常工作的助手:
def latest_issue
@issue = Issue.find(:all, :order => "id DESC", :limit => 1)
return @issue
end
之后, using@issue
在任何视图中都可以正常工作,但考虑到@issue
有一个名为message
using的列会@issue.message
返回无方法错误。
任何帮助都会很棒!干杯。
正如Kyle C 所说,当您应该从助手返回一个问题时,您正试图访问一系列message
问题的成员。
假设您使用的是 Rails 3,您的助手的一个大大改进的版本将这样编写:
def latest_issue
Issue.order(:id).last
end
关于编写 idomatic Ruby 的一些注意事项:
return
语句,让最后一个语句作为方法的返回值order()
, where()
, 和limit()
而不是将参数传递给find
问题实例变量返回一个对象数组而不是实例。如果您想选择一个问题对象的属性,您需要返回该对象的一个实例。
@issue = Issue.find(:last)
@issue.message
您可能正在尝试输出问题对象的所有消息属性,如果是这种情况,您需要将 @issue 传递给块
@issue.each do |issue|
issue.message
end