2009-08-05 39 views
0

我有一個窗體需要顯示與其他幾個表有關係的表。例如,我有一個表格「案件」(想象,調查案例),這是一個索賠人和一個客戶。在Rails中爲關係數據創建表單

我希望窗體顯示填寫案例數據,客戶數據和索賠人數據的字段。有沒有一種簡單的方法來做到這一點,這樣,當它的提交,這將是簡單:

case = Case.new(params[:case]) 
case.save 

因爲這將是,如果我只是提交併保存形式僅僅是個案的數據?

回答

0

聽起來像你正在尋找積極記錄的accepts_nested_attributes_for方法。您將需要使用

- form.fields_for :claimant do |claimant_form| 
    = claimant_form.text_field :name 

手藝表單可以在Ryan Daigle's blog post

+0

正是我在找的東西!謝謝! – intargc 2009-08-05 20:32:25

0

我不相信有一種方法,你可以調用case.save,它會工作。

要製作表格,請使用fields_for。 http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#M001605

fields_for允許您添加存儲在不同的POST變量領域,因此,如果您設置字段正確,則在新的方法中,你可能會做這樣的事情:

claimant = Claimant.new(params[:claimant]) 
claimant.save 

其中ISN」非常複雜。

+0

嗯,我知道,你可以填寫一個完整的關係對象,像這樣: 情況= Case.new case.claimant = Claimant.new #填寫情況和申請人信息 case.save 它將案件和索賠人的東西保存在數據庫中......我只是不確定你是否可以用表單中的參數來做到這一點。我猜不會。 謝謝! – intargc 2009-08-05 19:24:22

0

找到更多信息,請參閱我complex-form-examples創建巢狀多模型形式。這已更新爲與Rails 2.3的accepts_nested_attributes_for一起使用。

它允許您根據需要在params[:case]之間嵌套關聯。當您撥打case.save時,其他一切都將被保存。