我想写改变轮班来预订的方法更新实例与另一个实例的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
不与零上下文,没有。 –