我有一个名为meeting_times
的表格,其中包含字段:
meeting_date_time
user_id
我想通过单击索引页面上的按钮来更新会议时间的user_id
列。
页面设置如下:
October 30, 2012
08:00 [Reserve button]
09:00 [Reserve button]
我试过了:
<%= button_to "Reserve", meeting_time_path(meeting_by_timestamp(timestamp), :user_id => current_user_id), :method => :put %>
并且它的行为就像它有效,但数据库没有得到更新。
meeting_by_timestamp(timestamp)
是一个帮助方法,可以做到这一点
说。current_user_id
是登录用户的user_id
。如何设置button_to
以便更新数据库?
有没有更好的方法然后使用button_to
?
答案 0 :(得分:1)
我会在你的控制器中创建一个名为reserve
的单独方法,创建一个需要1个参数,会议然后使用reserve_meeting_time_path(meeting)
的路由。无论如何,current_user
都可以在控制器中访问,这样您就可以确保current_user
仅为自己保留会议。
在你的routes.rb
中resources :meeting_times do
member do
put 'reserve'
end
end
在您的控制器中:
def reserve
@meeting_time = MeetingTime.find(params[:id])
@meeting_time.update_attributes(:user_id => current_user.id)
# or however you want to handle it here
end
在您看来:
<%= button_to "Reserve", reserve_meeting_time_path(meeting_by_timestamp(timestamp)), :method => :put %>