我有一个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插件填充数据,我不知道该怎么做。
答案 0 :(得分:2)
我最近在我的一个项目中添加了jquery tokeninput,并试图给出一个粗略的逐步程序来完成它:
在控制器中定义方法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
初始化jquery tokeninput,如下所示:
$("input#whatever").tokenInput("<%= search_category_path %>", {
prePopulate: [{
id: "<%= @story.category.id %>",
name: "<%= @story.category.name %>"
}],
tokenLimit: 1 // limits only one selectable category
});
希望它有所帮助!