2012-08-04 3 views
1

acts_as_commentable_with_threading gem을 사용하는 양식을 만들려고합니다. 코드를 작성했지만, 몇 가지 문제가 있습니다. 내 주요 관심사는 commentable 객체의 id에 대해 hidden_field를 만들어야한다는 것입니다. 보석의 빌드 인 메소드 build_from을 사용하여 이것을 우회 할 수있는 방법이 있다고 생각합니다. 어떻게하는지 안다면 공유하십시오. 내가 가진 내 노출 컨트롤러에서레일 : acts_as_commentable_with_threading 양식 구현

: 지금이 순간, 여기처럼 내 코드가 어떻게 표시되는지를 보여줍니다

<%= form_for @new_comment, :remote => true do |f| %> 
    <%= f.text_area :body %> 
    <%= f.hidden_field :commentable_id, :value => @impression.id %> 
    <%= f.submit 'Submit' %> 
<% end %> 

를 그리고 댓글 컨트롤러에 내가 가진 내보기에서

@impression = @book.impressions.find_by_user_id(user) 
@new_comment = Comment.build_from(@impression, current_user.id, "") 

, 내가 가진 : 주석 모델에서

def create 
    @comment = Comment.build_from(Userimpression.find(params[:comment][:commentable_id]), current_user.id, params[:comment][:body]) 
    @comment.save 
end 

:

def self.build_from(obj, user_id, comment) 
    c = self.new 
    c.commentable_id = obj.id 
    c.commentable_type = obj.class.base_class.name 
    c.body = comment 
    c.user_id = user_id 
    c 
end 

답변

4

나는이 오래된 답을 알고 있지만,이 보석의 몇 가지 측면을 커버하는 좋은 튜토리얼은 : 그것은 아이들이 처리에 도움이되지 않습니다,하지만 쉽게 그것을 파악하는 http://twocentstudios.com/blog/2012/11/15/simple-ajax-comments-with-rails/

아웃.

+0

이 가이드는 쇼 뷰 및 부분적인 부분에서 로컬 변수'comment'를 사용하지만 "정의되지 않은 로컬 변수 또는 메소드"오류가 발생합니다. 컨트롤러의 로컬 변수를 어딘가에 선언해야 했습니까? 이 문제를 해결하는 방법을 모르겠습니다. – ahnbizcad