2011-12-27 38 views
0

我有兩個模型,UsersShiftsRails傳遞數據以形成不同的模型

  • Users:ID,名稱
  • Shifts:USER_ID,TIME_LENGTH

User的has_many Shifts; Shift belongs_to User。相當簡單。

我想要做的就是添加一個鏈接到新Shift控制器視圖(/shifts/new)我show用戶控制器(/users/1)上的按鈕。我設法用一個按鈕來做到這一點,因爲我想用我的Users模型中的信息預先填寫表格(即通過user.id發送)。

我用下面的代碼,它是連接正常,但不能工作了如何通過user.id細節

button_to "Create Shift", {:controller => "shifts", :action => "new"},{ :method => "get"} 

回答

0

可以在額外的參數傳遞給第二個參數,如下所示:

button_to "Create Shift", { :controller => "shifts", :action => "new", :user_id => user.id }, { :method => "get" } 

這應該產生這樣/shifts/new?user_id=5的URL。

0

您可以使用Nested resources

在routes.rb中寫:

map.resources :users do |users| 
    users.resources :shifts 
end 

然後爲新的換擋形式的路徑將是new_user_shift_path = /users/:id/shift/new

而且在shifts_controller你可以得到像這樣的用戶:

@user = User.find(params[:user_id]) 

然後,您將它作爲隱藏標記字段放入您的表單中。 (或者不需要 - 我不知道)