2013-05-07 57 views
1

在我的应用程序中,我有一个Athlete,它有很多sports。我正尝试构建编辑帐户部分,用户可以在其中编辑他们所播放的运动,但被卡住了。Rails 3编辑加入表格属性

我有一个加入表UserSport,它的字段为athlete_id, sport_id, primary。这是我的观点:

 <% @athlete.user_sports.each do |user_sport| %> 
     <% if user_sport.primary? %> 
      <div class="row"> 
      <label>Primary Sport:</label> 

      <%= f.semantic_fields_for :user_sports do |builder| %> 
       <%= builder.select :sport_id, Sport.all.collect { |sp| [sp.name, sp.id] }, { include_blank: "Choose One", selected: user_sport.sport_id }, { class: "chosen field autosave primary-sport-select", :"data-form-selector" => "#athlete-form", id: "primary-sport-select" } %> 
      <% end %> 
      <div class="cl">&nbsp;</div> 
      </div> 
     <% else %> 
      <div class="row"> 
      <% if @athlete.user_sports.many? %> 
      <label>More Sports</label> 
      <% else %> 

      <% end %> 
      </div> 
     <% end %> 
     <% end %> 

我不知道如何让这个用户可以改变他们的主要运动

回答

0
  1. 列表中@athlete行插入表中。
  2. 给每行一个链接到edit_athlete_path(@athlete)
  3. 让你Athlete形式包括场(个),他们玩什么运动
  4. 如果你从的任何数据写入到UserSport编辑链接Athlete表单,您需要通过您的模型中的attr_accessible命令授权。在这种情况下,你会想要去观看railscast视频约nested models in forms
+0

的新体育的添加工作...它真的编辑了当前存在的那些,主要是编辑运动员的主要运动 – dennismonsewicz 2013-05-07 20:15:05

+0

如此,在编辑表格的控制器中,对于他们列出的每项运动,显示一个字段。此外,这些领域的每一个领域都应该有一个单选按钮连接到世界各地,说明哪一个是主要的。 – Kristian 2013-05-07 20:42:16