0

値をビューに戻そうとしていますが、あまり成功していません

エラー

未定義のローカル変数またはメソッド「スケジュール」 #

モデル

    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 in Schedules#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メソッドでは、 と交換scheduleしますself

これはwin_lose_tie、スケジュール オブジェクトのインスタンス メソッドであるためです。すでにスケジュール オブジェクトのコンテキストにいるため、記述する必要はありませんschedule.。実際、それ*your_schedule_object*.scheduleは存在しない を参照します。

サイト ノートとして: 値を読み取るだけなので、self. ただし、値を割り当てる場合はselfが必要です。

于 2012-06-11T09:26:39.847 に答える