Could not find the association, Rails 3
class Membership < ActiveRecord::Base
belongs_to :role
belongs_to :user
end
class User < ActiveRecord::Base
has_many :roles, :through => :memberships
end
class Role < Act开发者_如何学运维iveRecord::Base
has_many :users, :through => :memberships
end
and my View
<% for role in Role.find(:all) %>
<div>
<%=check_box_tag "user[role_ids][]", role.id, @user.roles.include?(role) %>
<%=role.name%>
</div>
<% end %>
I've got next error on my View - Could not find the association :memberships in model User and i can't understand why this is happens ..
You need to explicitly state has_many :memberships
, like this:
class User < ActiveRecord::Base
has_many :memberships
has_many :roles, :through => :memberships
end
class Role < ActiveRecord::Base
has_many :memberships
has_many :users, :through => :memberships
end
Add that in, and you should be up and running.
I found the reason,
I'll need to add
has_many :memberships
to my User and Role models.
Thanks anyway ! :)
精彩评论