acts_as_taggable_on非常棒,非常容易使用。 然而,我正在尝试将用户选择的标签存储在依赖于模型属性之一的上下文中。
模型为Ingredient
,其属性为center_id
。我希望用户能够根据center_id
选择标签及其上下文作为字符串。
我需要帮助为控制器和视图获取正确的代码。
型号:
class Ingredient < ActiveRecord::Base
belongs_to :center
助手:
module IngredientsHelper
def get_all_tags_for_center
return Ingredient.tags_on(get_tags_context)
end
def get_tags_context
"c#{@ingredient.center_id}_ingredient"
end
end
查看 - 我试过这个,但它可能不适合动态上下文:
<%= f.association :tag_list do %>
<%= f.select :tag_list, options_for_select(get_tags, @ingredient.tag_list_on(get_tags_context)), {}, {class: 'doselect2', multiple: true } %>
<% end %>
控制器 - 需要你的帮助。
答案 0 :(得分:0)
解决。对于未来的读者:
控制器:
@ingredient.set_tag_list_on get_tags_context, params[:tags].join(",")
if @ingredient.update_attributes(ingredient_params)
.
.
end
查看:
<%= select_tag "tags[]", options_for_select(get_tags, @ingredient.tag_list_on(get_tags_context)), class: 'doselect2', multiple: true %>