2017-09-17 12 views
0

私は簡単な疑いがあります。私はレール5でルビーを研究しています。親は「カテゴリ」、子は「フレーズ」の関係を持っています。私のユーザーはフレーズを作成できますが、別のフォームでIDや名前だけのカテゴリを作成する必要はありません。私はフレーズのためのフォームでユーザーがカテゴリーを入力できる入力を望んでおり、オートコンプリートには使用可能なオプションがポップアップ表示されますが、新しいものが必要な場合は単に入力して、入力すると新しいものを作成します形。入力オートコンプリートまたはRailsでの新規入力

私はjquery-uiオートコンプリートと似たようなものを見ましたが、javascriptの中にあらかじめ定義されたリストが必要なため、正しく動作させることができませんでした。ありがとうございました。

+1

ruby​​の部分は、フレーズのネストされた属性を持つcategory_forカテゴリを作成するところです。 @muistooshortがあなたに与えたリンクで解決できるjqueryの部分、または[link](https://select2.org/)を使うことができます –

+0

ありがとう、私は両方の答えを組み合わせました。 – Sepak

答えて

0

同様の解決方法は、datalistoptionタグを入力することです。以下のような:あなたはカテゴリ

他のソリューションは、のための新しい方法を定義することであるため、使用可能なオプションのリストを取得するテキストフィールドを入力したら

<%= form_for @phrase do |phrase_form| %> 
    <%= f.text_field :name > 
     #=> other fields for phrase ........ 

     <%= fields_for :category do |category_builder| %> 
     <%= category_builder.text_field :name, :list => "categories_list" %> 
     <datalist id = "categories_list" > 
      <% Category.all.each do |c| do %> 
      <option value = "<%=c.name%>" ></option> 
      <% end %>  
     </datalist> 
     <% end %>  
     <% end %> 

あなたはphrase.rbモデルファイル

accept_nested_attributes_for :categoryを追加しますその後、フレーズcategory_namecategory_name=(name)

def category_name=(name) 
    self.category = Category.find_or_create_by(:name => name) 
end 

<%= f.text_field :category_name, :list => "categories_list %>"

関連する問題