使用acts-as-taggable-on进行标记。基于SO的先前问题我读到我必须最小化视图中的逻辑并为视图模板中的条件创建帮助器。到目前为止,这是我的代码。 (newby rails)
路线:
resources :appartments do
collection do
get ':tag', to: 'appartments#index', as: :tag
end
我的控制器:
def index
if params[:tag]
@apartments = Appartment.tagged_with(params[:tag])
else
@apartments = Appartment.all
end
end
申请助手:
def render_partials_conditionally
if @apartments.include?("family")
render :partial => 'familie'
if @apartments.include?("groups")
render :partial => 'groups'
end
end
end
这个想法(我假设)是我检查带有include的@apartments数组中是否存在值“familie”?方法
公寓索引视图
= render_partials_conditionally
当我去公寓/家庭时,部分_家庭必须显示,但没有任何反应......没有错误,没有参与
我做错了什么?
Grtz..remco
答案 0 :(得分:0)
如果Appartment
是模型,则@apartments应该是一个对象数组,因此@apartments.include?("family")
和@apartments.include?("groups")
永远不会成立。
相反,代码可能是这样的:
@apartments.any? { |apartment| apartments.some_field == "groups" }
但是我觉得它还不够好。更好的方法可能是帮助程序只返回partial的名称,然后在视图中呈现部分。