Rails - 仅一个元素的动态嵌套表单

时间:2013-01-10 11:28:09

标签: ruby-on-rails nested-forms rails-models

我要模仿球队和球员,并且像往常一样有很多球员。

在球队的展示页面中,我展示了球员等等。 (我已经关注了railscasts.com/episodes/196-nested-model-form-part-1教程。)

我的问题是,当我在团队展示页面中点击玩家的名字时,我想展示团队的编辑表单,但只有点击了玩家的数据。 在目前的情况下,我有一个巨大的形式,其中包含所有玩家的信息。

如果你能帮助我,那将是很棒的。

感谢。

1 个答案:

答案 0 :(得分:1)

您可以在团队表单中放置hidden_field,在提交时将player_id作为参数传递给控制器​​。

然后,您可以在控制器中仅对params[:player_id]执行搜索,并更改您显示的视图。

以您的形式:

<%= form_for .... do |f| %>
  <%= f.hidden_field 'player_id', value: player.id %>
  ...
<% end %>

在您的控制器中:

if(params[:player_id])
   @information = Information.find_by_user_id(params[:player_id].to_i)
end

最后,在您的视图中,您可以根据需要显示@information变量。

如果您不想提交给您的控制器,请编写一个javascript程序:

$(document).ready( function () {
   $(".team_form").live("click", function() {
       $(this).attr("player_id").val //holds the player_id
       //load the other form using the player_id
   }
}