在第一次表单提交中未设置Mongoid本地化字段

时间:2015-04-27 15:30:46

标签: ruby-on-rails mongoid

环境: Rails 4.2.0 Ruby 2.1.2 Mongoid 4.0.0

我有一个包含字段namedisplay_name的simple_form。两者都是本地化的=>是,但表单上已禁用name

当我提交带有display_name的值的表单时,Mongoid没有看到display_name的值,即"dn"=>{}

Started PATCH "/admin/competitions/53d11b01736e7358b57a0000" for ::1 at 2015-04-27 16:20:11 +0100
Processing by Admin::CompetitionsController#update as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"[hidden]", "competition"=>{"display_name"=>"Capital One Cup", "country_id"=>"53d11af2736e7358b5190000"}, "commit"=>"Update Competition", "id"=>"53d11b01736e7358b57a0000"}
D, [2015-04-27T16:20:11.537579 #5896] DEBUG -- :   MOPED: 127.0.0.1:27017 QUERY        database=dev collection=users selector={"$query"=>{"_id"=>BSON::ObjectId('53f74b79736e73452f000000')}, "$orderby"=>{:_id=>1}} flags=[] limit=-1 skip=0 batch_size=nil fields=nil runtime: 1.7300ms
D, [2015-04-27T16:20:11.539357 #5896] DEBUG -- :   MOPED: 127.0.0.1:27017 QUERY        database=dev collection=competitions selector={"_id"=>BSON::ObjectId('53d11b01736e7358b57a0000')} flags=[] limit=0 skip=0 batch_size=nil fields=nil runtime: 0.5760ms
D, [2015-04-27T16:20:11.561547 #5896] DEBUG -- :   MOPED: 127.0.0.1:27017 UPDATE       database=dev collection=competitions selector={"_id"=>BSON::ObjectId('53d11b01736e7358b57a0000')} update={"$set"=>{"dn"=>{}, "updated_at"=>2015-04-27 15:20:11 UTC}} flags=[]
D, [2015-04-27T16:20:11.561685 #5896] DEBUG -- :                          COMMAND      database=dev command={:getlasterror=>1, :w=>1} runtime: 18.4320ms
Redirected to http://localhost:3000/admin/competitions
Completed 302 Found in 39ms

现在,如果我编辑对象并再次给它一个显示名称,Mongoid将获取更改并将其写入数据库。即"dn"=>{"en"=>"Capital One Cup"}

Started PATCH "/admin/competitions/53d11b01736e7358b57a0000" for ::1 at 2015-04-27 16:25:34 +0100
Processing by Admin::CompetitionsController#update as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"[hidden]", "competition"=>{"display_name"=>"Capital One Cup", "country_id"=>"53d11af2736e7358b5190000"}, "commit"=>"Update Competition", "id"=>"53d11b01736e7358b57a0000"}
D, [2015-04-27T16:25:34.465519 #5896] DEBUG -- :   MOPED: 127.0.0.1:27017 QUERY        database=dev collection=users selector={"$query"=>{"_id"=>BSON::ObjectId('53f74b79736e73452f000000')}, "$orderby"=>{:_id=>1}} flags=[] limit=-1 skip=0 batch_size=nil fields=nil runtime: 0.8160ms
D, [2015-04-27T16:25:34.469391 #5896] DEBUG -- :   MOPED: 127.0.0.1:27017 QUERY        database=dev collection=competitions selector={"_id"=>BSON::ObjectId('53d11b01736e7358b57a0000')} flags=[] limit=0 skip=0 batch_size=nil fields=nil runtime: 0.5070ms
D, [2015-04-27T16:25:34.497381 #5896] DEBUG -- :   MOPED: 127.0.0.1:27017 UPDATE       database=dev collection=competitions selector={"_id"=>BSON::ObjectId('53d11b01736e7358b57a0000')} update={"$set"=>{"dn"=>{"en"=>"Capital One Cup"}, "updated_at"=>2015-04-27 15:25:34 UTC}} flags=[]
D, [2015-04-27T16:25:34.497525 #5896] DEBUG -- :                          COMMAND      database=dev command={:getlasterror=>1, :w=>1} runtime: 23.9000ms
Redirected to http://localhost:3000/admin/competitions
Completed 302 Found in 39ms

在config / application.rb中我设置了:

config.i18n.fallbacks = true
config.i18n.default_locale = :en

0 个答案:

没有答案