我嘗試通過表單爲對話創建新消息。Rails:部分爲新的嵌套資源形式
class Conversation < ActiveRecord::Base
has_many :messages
accepts_nested_attributes_for :messages
到目前爲止,我使用的部分來創建新的郵件_new_message.html.erb:
<div id="message_dialog">
<%= simple_form_for [:front, @conversation] do |f| %>
<%= f.input :challenge_id, as: :hidden, input_html: { value: @conversation.challenge.id } %>
<%= f.simple_fields_for :messages do |m| %>
<%= m.input :subject %>
<%= m.input :text, as: :text %>
<%= m.input :recipient_id, as: :hidden, input_html: { value: @conversation.challenge.user_id } %>
<%= m.input :sender_id, as: :hidden, input_html: { value: current_user.id } %>
<% end %>
<%= f.button :submit %>
<% end %>
</div>
在ConversationsController的表演動作,我定義:
@conversation = Conversation.find(params[:id])
@conversation.messages.build
這適用於爲新對話創建新消息。
然而,當我試圖創建已經有其它消息的形式幫手屬於談話
什麼是創造最好的方式每封郵件創建一個編輯框一個會話的新郵件一個新的嵌套資源?
優選地,我想使用相同的部分爲新對話創建新消息,併爲現有對話創建新消息,其中已有其他消息。
安置自己的'new'控制器代碼,所以我能理解你的建立更好的 –
您可以調用部分中'new.html。 erb'和'edit.html.erb',並且在控制器中可以相應地設置'@ conversation'。 – Pavan
@WesFoster我沒有消息#新控制器,因爲我想將新消息的表單追加到對話底部#show action中。 – Randomtheories