从Index.html.erb上的按钮更新字段

时间:2012-09-21 16:37:07

标签: ruby-on-rails ruby

我有一个名为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

1 个答案:

答案 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 %>