(Rails 4, acts_as_taggable_on): 在控制器中使用动态上下文
(Rails 4, acts_as_taggable_on): Using dynamic context in controller
acts_as_taggable_on 很棒,在使用静态上下文时非常容易使用。
但是,我正在尝试在依赖于模型属性之一的上下文中存储用户编辑的标签 select。
模型是 Ingredient
,它有一个属性 center_id
。我希望用户能够 select 标签及其上下文是基于 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 %>
管理员 - 需要您的帮助。
已解决。对于未来的读者:
控制器:
@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 %>
acts_as_taggable_on 很棒,在使用静态上下文时非常容易使用。 但是,我正在尝试在依赖于模型属性之一的上下文中存储用户编辑的标签 select。
模型是 Ingredient
,它有一个属性 center_id
。我希望用户能够 select 标签及其上下文是基于 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 %>
管理员 - 需要您的帮助。
已解决。对于未来的读者:
控制器:
@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 %>