我使用acts 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
#...我得到了很好的urls的例子,/apartments/tag1等。
我想在公寓index模板中显示基于标签名称的自定义内容。
Apartment的index视图:
- @appartments.each do |tags|
- case tags.tag_list
- when "tag1"
%p tag1 content
- when "tag2"
%p tag2 content
- else
%p default content当我转到url apartments/tag1时,文本"default content"是show,而不是"tag1 content"。
我做错了什么?
发布于 2012-11-17 01:18:59
关于你的代码有几点注意事项:
Enumerable上不使用case,在你的例子中它看起来像一个数组。使用include?检查数组中是否存在元素:1.9.3p194 :001 > a= [:a, :b, :c]
=> [:a, :b, :c]
1.9.3p194 :002 > case a
1.9.3p194 :003?> when :a
1.9.3p194 :004?> p '1'
1.9.3p194 :005?> when :b
1.9.3p194 :006?> p '2'
1.9.3p194 :007?> when :c
1.9.3p194 :008?> p '3'
1.9.3p194 :009?> when :d
1.9.3p194 :010?> p 'Never'
1.9.3p194 :011?> end
=> nil
1.9.3p194 :012 > a.include?(:c)
=> true https://stackoverflow.com/questions/13419933
复制相似问题