【发布时间】:2012-08-19 22:45:51
【问题描述】:
所以我有一个Conversation 模型,它是has_many messages。创建对话时,我正在尝试创建新消息。这是我的ConversationsController:
class ConversationsController < ApplicationController
before_filter :authenticate_user!
def new
recipient = User.find(params[:user])
@conversation = Conversation.new(from: current_user, to: recipient)
@conversation.messages.build(from: current_user, to: recipient)
end
def create
@conversation = Conversation.create(params[:conversation])
redirect_to @conversation
end
end
这是我的表格 (conversations/new.html.erb):
<%= form_for @conversation do |f| %>
<%= f.fields_for :messages do |g| %>
<%= g.label :subject %>
<%= g.text_field :subject %>
<%= g.label :content %>
<%= g.text_field :content %>
<% end %>
<%= f.submit "Send" %>
<% end %>
问题:当我提交表单时,对话的消息被保存,但我在build 中指定为参数的to 和from 字段没有保存(它们为零)。但是,在此表单中填写的 subject 和 content 字段保存得很好。
我已经进行了一些挖掘...如果我在@conversation.messages 上的new 操作或new.html.erb 上执行puts,则消息似乎有to 和@ 987654338@。只有当消息到达create 操作时,这些字段才会消失。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3.2 nested-forms nested-attributes