у меня есть 2 модели с многим ко многим ассоциации следующим образом:рельсы 4 has_many: через не экономить ассоциации
class User < ActiveRecord::Base
has_many :remark_users, :dependent => :destroy
has_many :designated_remarks, :through => :remark_users, :source => :remark
end
class Remark < ActiveRecord::Base
has_many :remark_users, :dependent => :destroy
has_many :users, :through => :remark_users
accepts_nested_attributes_for :users
end
и отношения:
class RemarkUser < ActiveRecord::Base
belongs_to :remark
belongs_to :user
end
Действие remarks_controller, что необходимо сделать сохранить:
# PATCH Save users
def save_users
@remark = Remark.find(params[:id])
@remark.users.build(params[:remark_user_ids])
@remark.save
end
И форма:
<%= form_for @remark, :url => salveaza_responsabili_remark_path(@remark) do |f| %>
<% @users.each do |user| %>
<%= check_box_tag 'remark[remark_user_ids][]', user.id, @remark.users.include?(user) %>
<%= user.name %>
<% end %>
<%= hidden_field_tag 'remark[remark_user_ids][]', '' %>
<% end %>
Te remarks_controller:
params.require(:remark).permit(:description, :suggestion, :origin_details, process_type_id, :origin_id, :remark_user_ids)
Оба пользователя и замечание уже существует, мне нужна форма только для создания ассоциаций, предпочтительно с помощью флажков.
В консоли консоль сохраняется. Но я трачу последний день, пытаясь заставить его работать в браузере. Я прочитал все, что мог найти по этому вопросу, и сейчас я очень смущен.
Может кто-нибудь указать мне на то, как должна выглядеть фактическая форма, и если в контроллере нужно добавить что-нибудь еще?
Вы получаете '@remark .users # => [] '? –
Я не уверен, что вы имеете в виду. Не могли бы вы немного объяснить? Я новичок в рельсах. Спасибо! –