2013-08-20 1 views
0

현재 스레드 된 메시징을 구현합니다. via RailsCastAncestry Gem은 모든 스레드 된 메시지를 부모로 저장합니다.

나는 Ancestry gem을 설치했지만 작성한 모든 메시지는 부모입니다. 예) 조상 = 전무

심지어 내 부모 통과 한 :. Index.html을

새로운 액션

메시지 컨트롤러

def index 
    @message = Message.new 
    @user = current_user 
    @sent_messages = current_user.sent_messages 
    @received_messages = current_user.received_messages 
end 

def new 
    @message = Message.new 
    @message.parent_id = params[:parent_id] 
end 

에 ID를

<% for incoming in @received_messages %> 
<%= render partial: "message", locals: {incoming: incoming} %> 

_message.html.erb

</div> 
    <%= link_to "Reply", new_message_path(:parent_id => incoming) ,class: "regular" %> 
    </div> 

new.ht ml.erb

<%= form_for @message do |f| %> 
    <p> 
    To:<br /> 
     <%= f.hidden_field :parent_id %> 
    <%= f.hidden_field :recipient, :value => (@message.parent.sender.name) %> 
    </p> 
    <p> 
    Message<br /> 
    <%= f.text_area :body %> 
    </p> 
    <p> 
    <%= submit_tag "Send Threaded Reply" %> 
    </p> 
<% end %> 

Message.rb

class Message < ActiveRecord::Base 

    attr_accessible :recipient, :subject, :body, :parent_id 

    has_ancestry 

end 

메시지를 만든 후 내 콘솔 :

요점 - 나는 메시지에 PARENT_ID (144)를 통과하고 있습니다 그러나 가계는 여전히으로 통과를 무.

Parameters: {"utf8"=>"✓", "authenticity_token"=>"gKVr06oT+6OcAERHAzSX79vTlJLniofmEOjZPdZmfwM=", "message"=>{**"parent_id"=>"114"**, "recipient"=>"Rach Miller", "body"=>"meh and more meh"}, "commit"=>"Send Threaded Reply"} 
    User Load (0.6ms) SELECT "users".* FROM "users" WHERE "users"."id" = 17 LIMIT 1 
    User Load (0.6ms) SELECT "users".* FROM "users" WHERE "users"."name" = 'Rach Miller' LIMIT 1 
    (0.2ms) BEGIN 
    SQL (0.7ms) INSERT INTO "messages" ("ancestry", "body", "created_at", "read_at", "recipient_deleted", "recipient_id", "sender_deleted", "sender_id", "subject", "updated_at") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10) RETURNING "id" [["ancestry", nil], ["body", "meh and more meh"], ["created_at", Tue, 20 Aug 2013 03:14:15 UTC +00:00], ["read_at", nil], ["recipient_deleted", false], ["recipient_id", 18], ["sender_deleted", false], ["sender_id", 17], ["subject", nil], ["updated_at", Tue, 20 Aug 2013 03:14:15 UTC +00:00]] 
+1

근무하여, 개별적으로 내 PARAMS을 통과 한 그것은 당신이 조상에 PARENT_ID를 사용하여 부모 개체를 설정할 수 있습니다 weird.I'm 확인합니다. 당신의 선반과 조상의 버전은 무엇입니까? parent_id를 필터링 한 일부 논리가 컨트롤러에있을 수 있습니까? – Bigxiang

+0

Hey @Bigxiang, Rails = 3.2.13 및 Ancestry = 2.0.0. – RedRory

+0

제 작성 기능에 문제가있어서 지금 작동 중입니다. – RedRory

답변

1

Bigxiang의 의견을 듣고 필자는 작성 기능을 살펴보기로 결정했습니다.

나는 그래서

@message.parent_id = params[:message][:parent_id] 나를 위해

건배