Rails 3编辑连接表属性

时间:2013-05-07 20:01:59

标签: ruby-on-rails-3 has-many-through

在我的应用中,我有一个Athlete,其中包含许多sports。我正在尝试构建编辑帐户部分,用户可以在其中编辑他们播放的体育赛事,但我被卡住了。

我有一个联接表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 %>

我不知道如何制作它以便用户可以更改他们的主要运动

1 个答案:

答案 0 :(得分:0)

  1. 将@athlete行列入您的表格。
  2. 为每一行指定一个链接到edit_athlete_path(@athlete)
  3. 的修改链接
  4. 让您的Athlete表格包含他们所玩运动的字段
  5. 如果您要将任何数据写入UserSport来自 Athlete表单,则需要通过{{1}授予其权限。你的模型中的命令。在这种情况下,您将要观看有关nested models in forms
  6. 的railscast视频