我发生了最奇怪的错误。我有一个超级基本表单,它包含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"
这是我在视图中输入数据后的结果。在我按下注册之前,我显然放了一根弦。
我错过了什么?任何帮助都会很棒!如果我取消验证并输入一个字符串,在控制台中返回“nil”?
答案 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)