Ruby on rails 未保存,没有错误消息
在表单提交时,它告诉我它已成功创建,但没有显示任何已提交的数据。数据库是空的。它显示“空”值,在实际屏幕上显示相同的值,我应该能够编辑数据。这是一个截图 更新:我认为问题在于它正在发出GET请求,但我不知道如何修复它。这是我的服务器在单击提交时执行get的屏幕截图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
这是设置 在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 Sex
get
很可能发生在之后。这是创建记录后的重定向。您希望查看之前的请求,它可能是一个POST
传递:sex=>{stuff}
实例变量命名是任意的。它可能是香蕉或巴拉克奥巴马。这样的命名可能会导致混乱,但不会影响代码的行为。我明白这一点,但即使它是任意的,但有时它必须是一致的(在某些情况下)。例如,由于我在控制器中设置了blob=Sex.new,因此我必须在视图中为blob使用形式为_的blob实例变量。因此,我认为实例变量变成了params:blob,但现在您解释了为什么…form_for创建以对象类命名的字段。。。
...
@sex = Sex.new(params[:sex])
...