如果球隊和球員將通過單獨的形式添加:
您可以在表單中的新播放器或窩在球隊的範圍,玩家路線TEAM_ID並從URL拉TEAM_ID params像params[:team_id]
。
嵌套播放器路線:
resources :teams do
resources :players
end
在你的團隊/顯示視圖(團隊詳細信息頁),創建播放鏈接:
<%= link_to 'Create Player', new_team_player_path(@team) %>
在球員構成:
<% form_for [@team, @player] do |f| %>
<!-- your form here -->
<%- end -%>
在玩家控制器中:
def new
@team = Team.find params[:team_id]
@player = Player.new
end
def create
@player = Player.new params[:player]
@player.team_id = params[:team_id] # => if just grabbing the id from the url params
if @player.save
# flash and redirect
else
# show form again
end
end
否則,請參閱關於@Antoine提到的關於嵌套屬性的railscast,以在一個表單上指定新的團隊和玩家詳細信息。 (我認爲你要找的是兩種形式的第一種選擇,但我可能會失敗。)
有關嵌套資源路由的更多信息,請參閱Rails Routing Guide。要查看應用程序中可用的路線,請從應用程序根目錄的命令行運行rake routes
。
謝謝! 我欣賞這個提示! – 2012-01-13 06:25:38