在Rails 4中设计用户模型中保存属性字段

时间:2014-07-27 23:35:44

标签: ruby-on-rails ruby-on-rails-4 devise

我只是按照this指南添加列'名字'和' secondname'使用以下命令到Devise用户模型。

rails generate migration add_firstname_to_user firstname:string
rails generate migration add_secondname_to_user secondname:string

我用以下代码进行了修改:

rake db:migrate

它工作正常,因为我可以使用User.all在控制台中看到这些字段,但我现在遇到的问题是我没有在app / model / user.rb中看到attr_accessible字段。

所以我刚刚添加了一行:

<div><%= f.label :first_name %><br />
  <%= f.text_field :firstname, autofocus: true %></div>

<div><%= f.label :second_name %><br />
  <%= f.text_field :secondname, autofocus: true %></div>
在app / views / devise / registrations中的new.html.erb中

,但它不起作用,因为我注意到我注册的用户的firstname和secondname属性为nil。

我能做什么?,我想是关于attr_accessible步骤的事情,但我无法找到它。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

我可能会对您的帖子感到困惑,但我相信(如您的链接文档的第3步所述)您需要将以下内容添加到您的user.rb:

attr_accessible :firstname, :secondname

答案 1 :(得分:0)

您需要为设计配置允许的参数。在 app / controllers / application_controller.rb 添加以下行:

rails g migration add_fields_to_user firstname:string secondname:string

看到您可以在一次迁移中添加多个列(字段):

db/migrate/20152347823846(just numbers here)_add_fields_to_user.rb

这将生成一个文件:

rake db:migrate

您还可以编辑该文件以添加字段,然后运行package main import ( "fmt" "encoding/json" ) type Filter struct { And []map[string]interface{} `json:"and"` } func WrapFilter(i interface{}) Filter { return Filter{ And: []map[string]interface{}{ map[string]interface{}{ "term": i, }, }, } } func main() { f := WrapFilter(map[string]string{"name.second": "ba"}) json.Marshal(f) }

我知道回复迟到了,但迟到总比没有好。