0

我正在尝试将值返回到我的视图中,尽管没有取得太大的成功

错误

未定义的局部变量或方法 `schedule' for #

模型

    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) %>

所有这些都返回以下错误

时间表中的名称错误#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 %> &mdash; <%= schedule.against %></td>
47:                 <td><%= schedule.opponent %></td>
48:                 <td><%= schedule.date.to_formatted_s(:event_date) %>
49:                 </td>

任何帮助都会很棒

提前致谢

4

1 回答 1

0

在您的方法中,与win_lose_tie交换。scheduleself

这是因为win_lose_tie它是一个调度对象的实例方法。您已经在 schedule 对象的上下文中,因此无需编写schedule.. 事实上,这将引用*your_schedule_object*.schedule,它不存在。

作为站点注释:由于您只读取值,因此您甚至可以完全省略self. 但是,如果您分配值,则self是必需的。

于 2012-06-11T09:26:39.847 回答