2010-12-14 11 views
3

私は次のモデルがあります:Ruby on Rails:モデルに対応するフィールドが存在しない場合にフォームテキストフィールドを追加するには?

Product: name, shop_id (foreign key) 
Shop: name 

団体は以下のとおりです。私は新しいProductを作成し、フォームに

Product: belongs_to :shop 
Shop: has_many :products 

<%= f.label(:shop, "Shop:") %> 
<%= f.select(...) %> 

これは、との選択ボックスでありますすべての既存店。この選択ボックスの最後のオプションはCreate New Shopです。ユーザーはこのオプションをクリックすると、Javascriptが余分なフィールドを示しています

<div id="new_shop_wrapper"> 
    <label for="new_shop">New shop:</label> 
    <input id="new_shop" name="new_shop" type="text" /> 
</div> 

(これdivdisplay: noneと、デフォルトでは非表示になっています。)

私はRailsのフォーム作成でこのdivを追加する必要がありますどのように?

私が試した:

<%= f.label(:new_shop, "New Shop:") %> 
<%= f.text_field(:new_shop) %> 

をしかしnew_shopProductのフィールドではありませんので、それは動作しません。

私が使用することを考えた:

<%= text_field(<object>, :new_shop) %> 

が、私は使用するかわかりません。

お知らせください。

+1

あなたの質問のタイトルが –

+0

:-)質問だった場合は、おそらくより多くのトラクションを得るだろうありがとう、私はタイトルを変更しました。 –

答えて

4

実際に

<%= text_field_tag("new_shop") %> 
+0

ありがとう、完璧です:) –

2

を試してみて、あなたがモデルにあなたの方法を追加することができます。

class Product < ActiveRecord::Base 
    def new_show=(val) 
    self.shop = Shop.new({:name => val}) 
    end 
end 
関連する問題