2

私は以下のような単純なマップされた関係を持つrailsプロジェクトを持っています:

モデルカテゴリ

has_many :stories

モデルストーリー

belongs_to category

私のストーリーコントローラーで私は持っています

def new
@story = Story.new
@categories = Category.all
end

それから私のnew.html.erbに私は持っています

<%= form_for @story do |f| %>
<%= f.text_field, :title %>
<%= collection_select(:story, :category_id, @categories, :id, :name)%>
<% end %>

<%= collection_select %>(選択ボックス)を(テキストフィールド)に置き換え、<%= f.text_field%>jquery toxeninput javascriptプラグインを使用してデータを入力したいのですが、これを行う方法がわかりません。

4

1 に答える 1

2

私は最近、自分のプロジェクトの 1 つに jquery tokeninput を追加しました。それを行うための大まかな段階的な手順を示します。

  1. トークン入力 javascript と css を取得し、html に追加します
  2. 次のようにコントローラーでメソッドを定義search_categoryします。

    def search_category
      # find the matching categories, Category.search method should implement all the logic needed
      categories = params[:q].blank? ? [] : Category.search(params[:q])
    
      render :json => categories.collect {|c| {:id => c.id, :name => c.name} }
    end
    
  3. 次のように jquery tokeninput を初期化します。

    $("input#whatever").tokenInput("<%= search_category_path %>", {
      prePopulate: [{ 
                     id: "<%= @story.category.id %>", 
                     name: "<%= @story.category.name %>"
                   }],
      tokenLimit: 1 // limits only one selectable category
    });
    

それが役に立てば幸い!

于 2011-07-16T01:57:30.407 に答える