不保存,没有错误消息

时间:2011-12-03 18:47:30

标签: ruby-on-rails forms

在表单提交时,它告诉我它已成功创建,但它没有显示已提交的任何数据。数据库是空的。它显示“空”值,并且在我应该能够编辑数据的实际屏幕上显示相同的值。这是截图

enter image description here

更新:我认为问题在于它正在发出GET请求,但我不知道如何修复它。这是我点击提交时我的服务器屏幕截图 server doing a get


以下是设置

在results_controller.rb的索引操作中,我有

    def index
    @results = Result.all
    @blob = Sex.new            //==@blob = Sex.new is the one I'm focussing on...
    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @results }


    end
  end

在views / results / index中,我的表单为

<`%= form_for(@blob) do |f| %>`

<div class="field">
    <b>1. solicitor exam was fixed?:</b><br/>
    <%= f.label(:solicitorcurve, "it was cooked") %>
    <%= f.radio_button(:solicitorcurve, "t") %> </br>
  </div>  
  <div class="field">

   <%= f.label(:solicitorcurve, "no it was ok") %>
    <%= f.radio_button(:solicitorcurve, "f") %>
   </div>  

    <div class="field">
    <%= f.label(:draftingteach, "i give the teaching a grade of _ on a scale of 1 to 6") %>
    <%= f.select:draftingteach, 1..6 %> </br>
    </div>

在sexes_controller.rb的创建动作中我有

def create

    @sex = Sex.new(params[:blob])
    respond_to do |format|
      if @sex.save
        format.html { redirect_to(@sex, :notice => 'Sex was successfully created.') }
        format.xml  { render :xml => @sex, :status => :created, :location => @sex }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @sex.errors, :status => :unprocessable_entity }
      end
    end
  end

在models / sex.rb中,什么都没有......

class Sex < ActiveRecord::Base
end

这是数据库的设置

and this is my database structure

1 个答案:

答案 0 :(得分:1)

看起来问题是,当您应该查看params[:blob]时,您正在检索params[:sex]form_for将创建以对象类命名的字段。您正在使用的实例变量名@blob是任意的。

...
@sex = Sex.new(params[:sex])
...

这是一个很好的论据,为什么你可能想要为它们的名称命名实例变量。减少混乱。