条件案例不正常

时间:2012-11-16 15:49:46

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 acts-as-taggable-on

我使用act-as-taggable-on进行标记。

apartments_controller

def index
  if params[:tag]
    @apartments = Apartment.tagged_with(params[:tag])
  else
    @apartments = Apartment.all
  end    
end

路线

resources :apartments do
  #...
  collection do
    get ':tag', to: 'apartments#index', as: :tag
  end
  #...

我通过示例/apartments/tag1等获得了不错的网址。

我想根据公寓index模板中的标记名称显示自定义内容。

Apartment的{​​{1}}观点:

index

当我转到网址- @appartments.each do |tags| - case tags.tag_list - when "tag1" %p tag1 content - when "tag2" %p tag2 content - else %p default content 时,文字apartments/tag1显示而不是"default content"

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您的代码有几个注释:

  1. 保持逻辑远离视图。即将代码提取到辅助方法中。
  2. 请勿在{{1​​}}上使用case,在您的情况下,它似乎是一个数组。使用Enumerable检查数组中是否存在元素:

  3. include?