如果球队和球员将通过单独的形式添加:
您可以在表单中的新播放器或窝在球队的范围,玩家路线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