0

使用acts-as-taggable-on 进行标记。基于之前的问题,我读到我必须最小化视图中的逻辑并为视图模板中的条件创建一个助手。到目前为止,这是我的代码。(纽比轨道)

路线:

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

这个想法(我假设)是我检查 @apartments 数组中是否存在值“家庭”并包含?方法

公寓索引视图

 = render_partials_conditionally   

当我去公寓/家庭时,必须显示部分 _family,但什么也没发生……没有错误,没有部分

我究竟做错了什么?

Grtz..remco

4

1 回答 1

0

如果Appartment是一个模型,@apartments 应该是一个对象数组,所以@apartments.include?("family")永远@apartments.include?("groups")不会是真的。相反,代码可能是这样的:

@apartments.any? { |apartment| apartments.some_field == "groups" }

不过我觉得还是不够好。更好的方法可能是助手只返回部分的名称,然后在视图中呈现部分。

于 2012-11-17T11:52:05.870 回答