Ниже код работает без ошибок:неинициализированным константа Пользователь :: отношения с помощью @ blog.user.followers.build
= form_for @blog.comments.build, :remote => true do |f|
Однако приведенные ниже результаты в ошибке «неинициализированного постоянного пользователя :: отношения»:
= form_for @blog.user.followers.build do |f|
модель пользователя объявлена как показано ниже:
class User < ActiveRecord::Base
has_many :blogs
has_many :comments
has_many :relationships, :foreign_key => "follower_id", :dependent => :destroy
has_many :reverse_relationships, :foreign_key => "followed_id",
:class_name => "relationship",
:dependent => :destroy
has_many :following, :through => :relationships, :source => :followed
has_many :followers, :through => :reverse_relationships, :source => :follower
end
Почему первый пример работы, но не HTE второй?
EDIT: Блог Модель:
class Blog < ActiveRecord::Base
belongs_to :user
has_many :comments
end
Отношения Модель:
class Relationship < ActiveRecord::Base
attr_accessible :followed_id
belongs_to :follower, :class_name => "User"
belongs_to :followed, :class_name => "User"
validates :follower_id, :presence => true
validates :followed_id, :presence => true
validate :validate_followers
def validate_followers
errors.add(:follower_id, "You cannot follow yourself") if follower_id == followed_id
end
end
Не могли бы вы показать свою модель блога? Есть ли в блоге только один пользователь? –
Это «has_many: blogs» вместо «has_many: users»? – BenB
@timbrandes да каждый блог имеет только одного пользователя –