0
我有一個「事件」和「任務」之間和show.html.erb內的許多關係,我有呈現以下幾種觀點:HMBTM複選框
<%= form_for([@event, @event.tasks.build]) do |f| %>
<div class="field">
<%= f.label :"Task name" %><br />
<%= f.text_field :name %>
</div>
<div class='cbx'>
<%= f.label :'Assign To' %><br />
<% for account in Account.find(:all) %>
<%= check_box_tag "task[account_id][]", account.id %>
<%= account.username %>
<% end %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
,當我實際工藝選擇上它給了我在ACCOUNT_ID 1的形式,我不知道爲什麼會這樣
綜觀開發日誌,發現如下:
Started POST "/events/2/tasks" for 127.0.0.1 at Thu Jun 30 13:25:59 +1000 2011
Processing by TasksController#create as HTML
Parameters: {"commit"=>"Create Task", "event_id"=>"2","authenticity_token"=>"oSxcZZ/NCH+OyP+UoRSMvmHCP1daPbmJBeJM6tLxhyA=", "utf8"=>"✓",
"task"=>{"name"=>"t", "account_id"=>["6"]}}
Event Load (0.2ms) SELECT "events".* FROM "events" WHERE "events"."id" = 2 LIMIT 1
AREL (0.4ms) INSERT INTO "tasks" ("created_at", "user_id", "event_id", "updated_at", "name", "account_id")
VALUES ('2011-06-30 03:25:59.327287', NULL, 2, '2011-06-30 03:25:59.327287', 't', 1)
你有任何想法,爲什麼是這是嗎?爲什麼它將6放入account_id但不更新數據庫?
如果您有任何其他意見,請隨時評論,我是初學者,所以我真的很想學很多東西。
預先感謝您
燁,僅此而已,但你能告訴我什麼是ACCOUNT_ID和account_ids之間的差異,並紅寶石讀它不同的像一個人,我來自java背景,順便說一句。非常感謝Bohdan –
Rails爲你做了很多幕後的工作 - 包括創建關聯對象的getters/setters。 Ruby採用了這些名稱,所以如果你有has_many關係,rails會設置「account_ids =」,但如果你有has_one關係,它會設置「account_id =」。這就是爲什麼rails將「account_ids」識別爲屬性(因爲它匹配setter-method)而不識別「account_id」的原因。 –