Form_for - Rails错误 - 电话号码未保存到数据库?

时间:2016-04-24 01:49:44

标签: ruby-on-rails forms

我发生了最奇怪的错误。我有一个超级基本表单,它包含first_name,Last_name,Email和Phone_number。它可能不是更直接,但由于一个超出我的原因,Phone_number字段不起作用?这是我的代码

<%= form_for @subscriber do |form| %>
 <div class="form-group">
<%= form.label :first_name %>
<%= form.text_field :first_name %>
<%= form.label :last_name %>
<%= form.text_field :last_name %>
<%= form.label :email %>
<%= form.text_field :email %>
<%= form.label :phone_number %>
<%= form.text_field :phone_number %>
</div>
<%= form.submit "Sign Up", class: "btn btn-primary" %>
   

这是我的模特

class Subscriber < ActiveRecord::Base
 validates :first_name, presence: true
 validates :last_name, presence: true
 validates :email, presence: true
 validates :phone_number, presence: true
end

和架构

  create_table "subscribers", force: :cascade do |t|
t.string   "first_name"
t.string   "last_name"
t.string   "email"
t.string   "phone_number"

这是我在视图中输入数据后的结果。在我按下注册之前,我显然放了一根弦。

enter image description here

我错过了什么?任何帮助都会很棒!如果我取消验证并输入一个字符串,在控制台中返回“nil”?

2 个答案:

答案 0 :(得分:2)

默认情况下,params哈希中的所有值在Rails4中都不可用。您需要告诉,如果您想提交表单(强参数),允许哪些参数在:订阅者中进行批量分配。在使用它们之前,必须列出Rails4 params(哈希),哪些是允许的。每个控制器管理自己的允许属性列表。因此,在控制器中你应该使用:

params.require(:subscribers).permit(:first_name, :last_name, :email, :phone_number) 

答案 1 :(得分:0)

您的代码看起来很好,我想问题将在您的控制器中。例如,您可能忘了允许:phone_number。确保你做到

params.require(:subscribers).permit(:first_name, :last_name, :email, :phone_number)