through rails many has_one has_and_belongs_to_many has belongs_to belongs and active ruby-on-rails activerecord many-to-many associations has-many-through

ruby-on-rails - many - rails has_one through



ActiveRecord:: HasManyThroughAssociationNotFoundError en UserController#welcome (1)

Debe definir el modelo de unión como una asociación separada cuando use has_many :through :

class Post < ActiveRecord::Base has_many :user_posts has_many :users, :through => :user_posts end class User < ActiveRecord::Base has_many :user_posts has_many :posts, :through => :user_posts end class UserPost < ActiveRecord::Base belongs_to :user # foreign_key is user_id belongs_to :post # foreign_key is post_id end

Esto funciona mejor cuando necesita mantener los datos que pertenecen al modelo de unión en sí, o si desea realizar validaciones en la unión por separado de los otros dos modelos.

Si solo desea una tabla de unión simple, es más fácil usar la sintaxis HABTM antigua:

class User < ActiveRecord::Base has_and_belongs_to_many :posts end class Post < ActiveRecord::Base has_and_belongs_to_many :users end

Tengo una relación de muchos a muchos en los carriles. Todas las tablas de la base de datos se nombran en consecuencia y de manera apropiada. Todos los archivos de modelo son plurales y usan guiones bajos para separar las palabras. Todas las convenciones de nomenclatura son seguidas por los estándares de rubí y rieles. Estoy usando tiene muchos a través de mis modelos como este:

has_many :users, :through => :users_posts #Post model has_many :posts, :through => :users_posts #User model belongs_to :users #UsersSource model belongs_to :posts #UsersSource model

¿De qué otra cosa podría ser este error?

ActiveRecord::HasManyThroughAssociationNotFoundError in UsersController#welcome Could not find the association :users_posts in model Post