Ruby on rails 未保存,没有错误消息

Ruby on rails 未保存,没有错误消息,ruby-on-rails,forms,Ruby On Rails,Forms,在表单提交时,它告诉我它已成功创建,但没有显示任何已提交的数据。数据库是空的。它显示“空”值,在实际屏幕上显示相同的值,我应该能够编辑数据。这是一个截图 更新:我认为问题在于它正在发出GET请求,但我不知道如何修复它。这是我的服务器在单击提交时执行get的屏幕截图 这是设置 在results_controller.rb的索引操作中,我有 def index @results = Result.all @blob = Sex.new //==@b

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

更新:我认为问题在于它正在发出GET请求,但我不知道如何修复它。这是我的服务器在单击提交时执行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
在视图/结果/索引中,我有表单

<`%= 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>
在models/sex.rb中,没有

class Sex < ActiveRecord::Base
end
class Sex
这是数据库的设置


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

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

这是一个很好的论据,可以解释为什么您可能希望为实例变量命名。减少混淆。

您是否有可能在模型中使用受保护/可访问的属性?模型完全为空。这有问题吗?--class Sexget很可能发生在之后。这是创建记录后的重定向。您希望查看之前的请求,它可能是一个
POST
传递
:sex=>{stuff}
实例变量命名是任意的。它可能是香蕉
或巴拉克奥巴马。这样的命名可能会导致混乱,但不会影响代码的行为。我明白这一点,但即使它是任意的,但有时它必须是一致的(在某些情况下)。例如,由于我在控制器中设置了blob=Sex.new,因此我必须在视图中为blob使用形式为_的blob实例变量。因此,我认为实例变量变成了params:blob,但现在您解释了为什么…form_for创建以对象类命名的字段。。。
...
@sex = Sex.new(params[:sex])
...