我试图将一个值返回到我的观点,虽然没有取得多大成功
#
的未定义局部变量或方法`schedule' def win_lose_tie
if schedule.for.to_i == schedule.against.to_i then
:tie
elsif schedule.for.to_i > schedule.against.to_i ? :win : :lose
end
end
def win_lose_tie_display(value)
case value
when :win
"W"
when :lose
"L"
when :tie
"T"
else
"unknown win/lose/tie value"
end
end
<%= win_lose_tie_display(schedule.win_lose_tie) %>
所有这些都返回以下错误
计划表中的NameError #index
显示/Users/**/Sites/rails_projects/**/app/views/schedules/index.html.erb第46行提出:
43: <% @schedules.each do |schedule| %>
44: <tr>
45: <td><%= schedule.event %></td>
46: <td><strong><%= win_lose_tie_display(schedule.win_lose_tie) %></strong> <%= schedule.for %> — <%= schedule.against %></td>
47: <td><%= schedule.opponent %></td>
48: <td><%= schedule.date.to_formatted_s(:event_date) %>
49: </td>
任何帮助都会很棒
提前致谢
答案 0 :(得分:0)
在win_lose_tie
方法中,与schedule
交换self
。
这是因为win_lose_tie
是计划对象的实例方法。您已经在计划对象的上下文中,因此无需编写schedule.
。实际上,这将引用不存在的*your_schedule_object*.schedule
。
作为网站备注:由于您只阅读了值,因此您甚至可以完全省略self
。但是,如果您指定值,则需要self
。