¿Cómo editas los atributos de un modelo de unión cuando usas accept_nested_attributes_for?Rails anidados con has_many: a través de, ¿cómo editar los atributos del modelo join?
tengo 3 modelos: Temas y artículos unidos por enlazadores
class Topic < ActiveRecord::Base
has_many :linkers
has_many :articles, :through => :linkers, :foreign_key => :article_id
accepts_nested_attributes_for :articles
end
class Article < ActiveRecord::Base
has_many :linkers
has_many :topics, :through => :linkers, :foreign_key => :topic_id
end
class Linker < ActiveRecord::Base
#this is the join model, has extra attributes like "relevance"
belongs_to :topic
belongs_to :article
end
Así que cuando construyo el artículo en el "nuevo" acción del controlador de temas ...
@topic.articles.build
.. .y hacer la forma anidada en los temas/new.html.erb ...
<% form_for(@topic) do |topic_form| %>
...fields...
<% topic_form.fields_for :articles do |article_form| %>
...fields...
... rieles crea automáticamente el enlazador, que i es grandioso. Ahora para mi pregunta: Mi modelo de enlazador también tiene atributos que quiero poder cambiar a través del formulario "nuevo tema". Pero el enlazador que Rails crea automáticamente tiene valores nulos para todos sus atributos, excepto topic_id y article_id. ¿Cómo puedo poner campos para esos otros atributos del enlazador en el formulario "nuevo tema" para que no salgan?
que estoy tratando de hacer lo mismo usted está, solo en una acción nueva/crear ... Me pregunto si podría compartir las acciones de su controlador. Quiero crear un "Usuario" a través de una "Cuenta" usando una "Relación" como un "enlazador" ... pero no puedo entender cómo se verán las acciones nuevas y creadas ... ¿te importaría? ? – Mohamad
https://robots.thoughtbot.com/accepts-nested-attributes-for-has- many-through – zx1986