使用has_many:through创建与现有模型的关联

时间:2015-07-10 17:13:27

标签: ruby-on-rails ruby-on-rails-4

我希望用户能够使用多个现有部件创建用户系统。那个。目前,当我编辑或创建具有部件选择的用户系统时,我得到了。

return iDic.Keys.Cast<object>().ToDictionary(k=> k.ToString(), v=> iDic[v]);

没有任何内容提交到联接表。

Processing by UserSystemsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"LgudsjWoAROXi0DGpUaH0ie2GNAuooRGtsPN+fOg+Gtev6Q6QmJC4dYIwFW9evaBOa0TUWotrQec1o1ROCbwFQ==", "user_system"=>{"name"=>"adfa"}, "parts_user_systems"=>{"part_id"=>["", "2", "3"]}, "button"=>""}
  User Load (0.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1  ORDER BY "users"."id" ASC LIMIT 1  [["id", 101]]
   (0.1ms)  BEGIN
  SQL (0.6ms)  INSERT INTO "user_systems" ("name", "user_id", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id"  [["name", "adfa"], ["user_id", 101], ["created_at", "2015-07-10 17:10:39.564555"], ["updated_at", "2015-07-10 17:10:39.564555"]]
   (0.2ms)  COMMIT

_form.html.erb

class UserSystem < ActiveRecord::Base
  has_many :parts_user_systems, foreign_key: "part_id"
  has_many :parts, through: :parts_user_systems, foreign_key: "part_id"
end

class Part < ActiveRecord::Base
  has_many :parts_user_systems
  has_many :user_systems, through: :parts_user_systems
end

class PartsUserSystem < ActiveRecord::Base
  belongs_to :part
  belongs_to :user_system
end

class UserSystemsController < ApplicationController
 def user_system_params
      params.require(:user_system).permit(:name, :user_id, part_ids: [:ids])
    end
end

show.html.erb

 <%= form_for(@user_system) do |f| %>
        <div class="field">
              <%= f.label :part_id, "Part " %><br/>
          <%=  collection_select :parts_user_systems, :part_id, Part.all, :id, :name, {:selected => 1}, {:multiple => true} %>
        </div>

          <div class="form-actions">
            <%= f.button :submit %>
          </div>
        </div>
    <% end %>

0 个答案:

没有答案