Ruby on rails 我的表单域在提交时被删除

Ruby on rails 我的表单域在提交时被删除,ruby-on-rails,forms,Ruby On Rails,Forms,因此,它没有通过验证 这是我的嵌入式表单: - form_for [@organization, @referral] do |f| = f.error_messages = render :partial => 'referral_fields', :locals => { :f => f } = f.submit "Submit", :class => "button" #_referral_fields.html.haml .grid_7

因此,它没有通过验证

这是我的嵌入式表单:

- form_for [@organization, @referral] do |f|
  = f.error_messages

  = render :partial => 'referral_fields', :locals => { :f => f }

  = f.submit "Submit", :class => "button"


#_referral_fields.html.haml

.grid_7
  .grid_1{:style => "width: 64px;"}
    = f.label :org_name, "Business", :class => "right"
  .grid_4
    = f.text_field_tag :org_name
.grid_7
  .grid_1{:style => "width: 64px;"}
    = f.label :name,  '', :class => "right"
  .grid_4
    = f.text_field_tag :name
.grid_7
  .grid_1{:style => "width: 64px;"}
    = f.label :email, '', :class => "right"
  .grid_2.omega{:style => "width: 114px;"}
    = f.text_field_tag :email, '', :style => "width: 125px;"
  .grid_1.alpha
    = f.label :town, '', :class => "right"
  .grid_2
    = f.text_field_tag :town, '', :style => "width: 100px;"
当我单击submit时,SQL肯定会读取我输入的数据:

Processing ReferralsController#create (for ::1 at 2010-10-18 09:39:07) [POST]
  Parameters: {"name"=>"asdfasd", "commit"=>"Submit", "action"=>"create",   "authenticity_token"=>"/1bwOqHjojde3p0Py08mCrko8xULE4R+eXUvT6qf1cE=", "controller"=>"referrals", "org_name"=>"asdfasdf", "organization_id"=>"1", "town"=>"asdfasd", "email"=>"asdfasd"}
不知道我错过了什么。以下是控制器和型号:

#referral.rb
belongs_to :organization, :touch => true
validates_presence_of :org_name, :name, :email, :town  

#referrals_controller.rb

def new
  @referral = Referral.new
  respond_to do |format|
    format.html { render :layout => 'manage' }
  end
end

def create
  @referral = Referral.new(params[:referral])
  if @referral.valid? && @organization.referrals << @referral
    flash[:notice] = "Referrals saved."
    redirect_to new_organization_referrals_path(@organization)
  else
    render :action => :new, :layout => 'manage'
  end
end
#reflection.rb
属于:组织,:touch=>true
验证是否存在:组织名称、:名称、:电子邮件、:城镇
#转介\u controller.rb
def新
@推荐=推荐。新建
回应待办事项|格式|
format.html{render:layout=>manage'}
结束
结束
def创建
@转诊=转诊。新建(参数[:转诊])
如果@reflection.valid?&&@organization.referrals:新建,:布局=>“管理”
结束
结束

从参数来看,您的表单字段设置不正确

您正在使用params[:referral]散列来构建引用,但我在您的参数列表中没有看到:referral散列

您的表单字段应如下所示:

<input name="referral[name]"/> <input name="referral[town]"/> <input name="referral[org_name]"/> 等等


然后在你的参数列表中,你应该是这样的{:reference=>{:name=>“foo”,“org_name”=>“bar”,town=>“Boise”}

啊,你是对的。我很可能没有从我的本地人身边经过?我更新了上面的表格,这样你就可以看到部分内容了。我的输入当前看起来像这样查看表单,我不能说它有任何问题。它必须以某种方式成为控制器。使用
=f.text\u field
而不是
=f.text\u field\u tag
text\u field\u tag是FormTagHelper,而text\u field是FormHelper,这是两种不同的东西。看一下文档()。