Не удалось найти ассоциацию, Rails 3 - PullRequest
5 голосов
/ 04 декабря 2010
class Membership < ActiveRecord::Base
  belongs_to :role
  belongs_to :user
end

class User < ActiveRecord::Base
   has_many :roles, :through => :memberships
end

class Role < ActiveRecord::Base
  has_many :users, :through => :memberships
end

и мой взгляд

<% for role in Role.find(:all) %>
      <div>
        <%=check_box_tag "user[role_ids][]", role.id, @user.roles.include?(role) %>
        <%=role.name%>
      </div>
     <% end %>

У меня следующая ошибка в моем представлении - не удалось найти ассоциацию и я не могу понять, почему это происходит ..

Ответы [ 2 ]

15 голосов
/ 04 декабря 2010

Вам необходимо явно указать has_many :memberships, например:

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

Добавьте это, и вы должны начать работу.

0 голосов
/ 04 декабря 2010

Я нашел причину,

Мне нужно будет добавить

has_many :memberships

моим пользовательским и ролевым моделям.

Спасибо в любом случае! :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...