Я хочу, чтобы получить имя пользователя автора комментария, как этогоBELONGS_TO псевдоним
comment.commenter
моделей/comment.rb
class Comment < ActiveRecord::Base
belongs_to :commenter
belongs_to :commentable, polymorphic: true
end
модели/user.rb
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
validates :username, presence: true, uniqueness: true
has_many :comments, as: :commenter
end
Когда я пытаюсь для создания комментария непосредственно к db с использованием этой строки кода:
Comment.create(commentable_type: 'Pokemon', commentable_id: 1, content: 'great', commenter: 1)
Он бросает эту ошибку
NameError: uninitialized constant Comment::Commenter
from /var/lib/gems/2.3.0/gems/activerecord-4.2.6/lib/active_record/inheritance.rb:158:in `compute_type'
Я где-то читал, как: используется только для полиморфных assocciations, так что может быть в случае моей ошибки, но не мог понять, как обойти эту проблему
Спасибо, это решить мою проблему –