我想寫改變輪班來預訂的方法更新實例與另一個實例的PARAMS。但是我得到的錯誤如何從一個視圖
「未定義的方法'書」的#<輪班:0xc973ce0>」
,我不明白爲什麼。我只是希望它是一個按鈕,而不是一個單獨的編輯視圖。
編號:原來我把書的方法放在錯誤的地方,但work_shifts.rb中的同一個方法拋出一個「未定義的方法`to_model爲true:TrueClass」。我(顯然)不確定什麼是調用自定義方法的正確方法,該方法使用視圖中的另一個參數更新一個對象。
我的索引視圖:
<% @work_shifts.each do |work_shift| %>
<tr>
<td><%= work_shift.date %></td>
<td><%= work_shift.booked_by %></td>
<td><%= work_shift.booked %></td>
<td><%= work_shift.start_time.strftime("%H:%M") %></td>
<td><%= work_shift.stop_time.strftime("%H:%M") %></td>
<td><%= button_to 'Book', work_shift.book(current_member) %></td>
<% if current_member.admin? %>
<td><%= link_to 'Edit', edit_work_shift_path(work_shift) %></td>
<td><%= button_to "Ta bort", work_shift, :method=>:delete, :work_shift=>:destroy %></td>
<% end %>
</tr>
<% end %>
WorkShift.rb:
def book(member_id)
self.update(booked:true, booked_by: member_id)
end
的routes.rb
resources :work_shifts do
member do
get 'book'
end
end
我是新來的導軌和學習在旅途中,我猜猜這個解決方案是微不足道的,但我找不到任何有助於我想做的問題或文檔。
您已經在控制器中定義了一個方法,但正試圖在模型實例上調用它。 –
謝謝,這有幫助!我不確定在哪裏放置該方法。但是,如果我把這個方法放在模型中,我會得到「未定義的方法'to_model'爲true:TrueClass」。任何有關導致該問題的提示? – SKR
不與零上下文,沒有。 –