Ruby on Rails 3.0.7을 사용하고 있으며 응용 프로그램에 act_as_article
플러그인을 구현하려고합니다. 내가 뭘 할 것인가? 유효성 확인 해당 플러그인 내에서 "기사 클래스로 작동"방법 (참고 : 작동하려면 일부 데이터베이스 테이블 열을 만들어야합니다.이 중 하나는 title
특성으로 표시됩니다).플러그인의 유효성 검사 방법
# vendor/plugins/article/lib/acts_as_article.rb
module Article
extend ActiveSupport::Concern
included do
validates :title, # Validation method
:presence => true
end
module ClassMethods
def acts_as_article
send :include, InstanceMethods
end
end
module InstanceMethods
...
end
end
ActiveRecord::Base.send :include, Article
# app/models/review.rb
class Review
acts_as_article
...
end
플러그인이 작동 위의 코드를 사용하여 내 RoR에 응용 프로그램에서
이 코드가 있습니다. 나는이 같은 Review
클래스의 일부 기록 협회를 추가하지만 경우 :
class Review
acts_as_article
has_many :comments # Adding association
...
end
및 내 ReviewsController
에 나뿐만 아니라, 다음을 추가
def create
...
@article.comments.build( # This is the code line 89
:user_id => @user.id
)
if @article.save
...
end
end
나는이 오류가
NoMethodError (undefined method `title' for #<Comments:0x00000103abfb90>):
app/controllers/articles_controller.rb:89:in `create'
아마 모든 Review
"관련"클래스 \ 모델에 대해 유효성 검사가 실행되고 Comment
클래스 에는title
속성이 없습니다. 플러그인 코드 내부에서 이와 같은 유효성 검사 메서드를 주석 처리하기 때문에
module Article
...
included do
# validates :title, # Validation
# :presence => true
end
...
end
더 이상 오류가 발생하지 않는다고 생각합니다.
그래서 어떻게이 문제를 해결할 수 있습니까?
주 :
아마도 도움이 될 수 있습니다. https://github.com/apneadiving/Google-Maps-for-Rails/blob/master/lib/gmaps4rails/acts_as_gmappable.rb – apneadiving