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