我在尝试保存嵌套窗体,不确定如何使其工作。 无法使用'body'保存private_message。在导轨中嵌套窗体
@private_message_topic.private_messages.build
它建立private_message与private_message_topic_id设置。不知道如何添加params [:body]虽然
希望你能帮助我。谢谢。
class PrivateMessageTopic < ActiveRecord::Base
belongs_to :recipient, class_name: "User", foreign_key: "recipient_id"
belongs_to :sender, class_name: "User", foreign_key: "sender_id"
has_many :private_messages
accepts_nested_attributes_for :private_messages
end
class PrivateMessage < ActiveRecord::Base
belongs_to :recipient, class_name: "User", foreign_key: "recipient_id"
belongs_to :sender, class_name: "User", foreign_key: "sender_id"
belongs_to :private_message_topic
end
class PrivateMessageTopicsController < ApplicationController
before_action :find_user
before_action :find_private_message, only: [:show]
def index
end
def show
end
def new
@private_message_topic = current_user.sent_messages.build
@private_message_topic.private_messages.build
end
def create
@private_message_topic = current_user.sent_messages.build(private_message_topic_params)
@private_message_topic.recipient = @user
if @private_message_topic.save
#Todo
else
redirect_to action: :new
flash.alert = "oops!"
end
end
def inbox
@inbox_messages = @user.inbox_messages
end
def sent
@sent_messages = @user.sent_messages
end
private
def find_user
@user = User.find(params[:user_id])
end
def find_private_message
@private_message = PrivateMessageTopic.find(params[:id])
end
def private_message_topic_params
params.require(:private_message_topic).permit(:title, private_messages_attributes: [:body])
end
end
private_message_topics/_form
= simple_form_for @private_message_topic, url: user_private_message_topics_path, method: :post do |form|
= form.input :title
= form.simple_fields_for @private_message_topic.private_messages.new do |form|
= form.input :body
= form.submit
请张贴您的'用户'模型。 – San
http://pastie.org/9351436 @San – user3303363
我会推荐使用'nested_form'或'cocoon' gem。 – San