Zac*_*c M 19 activerecord ruby-on-rails
谷歌搜索了一段时间,没有运气.在传递嵌套属性时,我的Web服务上出现"NoMethodError(未定义方法`with_indifferent_access'"错误.
其他嵌套的工作,它们是一对一的,这是一对多......
class Customer < ActiveRecord::Base
belongs_to :quote
has_one :policy, :dependent => :destroy
has_one :vehicle, :dependent => :destroy
has_many :claims, :dependent => :destroy
has_many :incidents, :dependent => :destroy
accepts_nested_attributes_for :policy
accepts_nested_attributes_for :vehicle
accepts_nested_attributes_for :incidents
end
Run Code Online (Sandbox Code Playgroud)
工作正常:
Processing QuotesController#create to xml (for 127.0.0.1 at 2010-12-12 15:16:33) [POST]
Parameters: {"quote"=>{"customer_attributes"=>{"address1"=>nil, "city"=>"ggh", "dob"=>nil, "address2"=>nil, "title"=>nil, "country"=>nil, "postcode"=>nil, "vehicle_attributes"=>{"mileage"=>nil, "registration"=>nil, "value"=>nil, "parking"=>nil}, "policy_attributes"=>{"breakdown"=>nil, "windscreen"=>"1", "excess"=>nil}, "telephone"=>nil, "surname"=>nil, "forename"=>"wasdddfggh", "email"=>nil}}}
[4;35;1mQuote Create (1.0ms)[0m [0mINSERT INTO "quotes" ("created_at", "updated_at") VALUES('2010-12-12 15:16:33', '2010-12-12 15:16:33')[0m
[4;36;1mCustomer Create (0.0ms)[0m [0;1mINSERT INTO "customers" ("address1", "city", "dob", "address2", "quote_id", "created_at", "title", "country", "postcode", "updated_at", "telephone", "forename", "surname", "email") VALUES(NULL, 'ggh', NULL, NULL, 2, '2010-12-12 15:16:33', NULL, NULL, NULL, '2010-12-12 15:16:33', NULL, 'wasdddfggh', NULL, NULL)[0m
[4;35;1mPolicy Create (0.0ms)[0m [0mINSERT INTO "policies" ("breakdown", "created_at", "windscreen", "excess", "updated_at", "customer_id") VALUES(NULL, '2010-12-12 15:16:33', 1, NULL, '2010-12-12 15:16:33', 2)[0m
[4;36;1mVehicle Create (0.0ms)[0m [0;1mINSERT INTO "vehicles" ("mileage", "created_at", "updated_at", "registration", "value", "parking", "customer_id") VALUES(NULL, '2010-12-12 15:16:33', '2010-12-12 15:16:33', NULL, NULL, NULL, 2)[0m
Completed in 153ms (View: 4, DB: 1) | 201 Created [http://localhost/quotes.xml]
host/quotes.xml]
Run Code Online (Sandbox Code Playgroud)
但是,添加时
"incidents_attributes"=>{"date_of_incident"=>"2008-05-19", "sum_of_claim"=>"34554", "description"=>"PLEASE!"},
Run Code Online (Sandbox Code Playgroud)
它导致
NoMethodError (undefined method `with_indifferent_access' for "2008-05-19":String):
Run Code Online (Sandbox Code Playgroud)
删除date_of_incident,它只会抱怨下一个属性.
以前我有"incident_attributes"(单一事件)和has_many:事件,但改变这个没有帮助.
iai*_*ain 18
因为客户有很多事件,Rails希望"incidents_attributes"是一个数组,而不是一个哈希.当你这样做时,这应该会自动发生:
<%= form_for @customer do |f| %>
<%= f.fields_for :incidents do |incident_fields| %>
<%= incident_fields.date_select :date_of_incident %>
<% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13666 次 |
最近记录: |