1

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

Railsは機能するように動作しますが、データベースは更新されません。

  • meeting_by_timestamp(timestamp)それが言うことを行うヘルパーメソッドです。
  • current_user_iduser_idログインしている人のです。

button_toデータベースを更新するように設定するにはどうすればよいですか?使用するよりも良い方法はありbutton_toますか?

4

1 に答える 1

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 %>
于 2012-09-21T16:59:57.320 に答える