ROR新秀。我使用acts_as_taggle_on gem进行标记,并尝试创建两种不同类型的标记,类似于this post。我已经让表单工作了,它添加了两种不同的标签类型,但是我的控制器一定有问题,因为只有一种标签类型有效(常规标签 - '系列'没有'工作)。当我说'不工作'时我的意思是显示页面上的标签是可点击的链接,可以将我的索引页面过滤到只有那些带有我链接标签的艺术品:这适用于'标签'但不适用于'系列。'系列只是向我展示了所有的艺术作品,而不仅仅是那些带有我链接的系列标签的作品。
控制器:不是很干!建议欢迎。 :)
def index
if params[:tag]
@artworks = Artwork.tagged_with(params[:tag])
else
@artworks = Artwork.all
end
end
def tagged
if params[:tag].present?
@artworks = Artwork.tagged_with(params[:tag])
else
@artworks = Artwork.all
end
end
def series
if params[:series].present?
@artworks = Artwork.tagged_with(params[:series])
else
@artworks = Artwork.all
end
end
控制许可证中强有力的参数:
:tag_list, :tag, :series_list, :series
型号:
acts_as_taggable
acts_as_taggable_on :tags, :series
路线:
get 'series' => 'artworks#index', :as => 'series'
get 'tagged' => 'artworks#index', :as => 'tagged'
root "artworks#index"
显示:
<% unless @artwork.series.blank? %>
<div class="col-xs-6 col-sm-6 col-md-4">
<p class="field-label">Series</p>
<% @artwork.series.each do |series| %>
<span class="tags">
<%= link_to series.name, series_url(:series => series.name) %>
</span>
<% end %>
</div>
<% end %>
<% unless @artwork.tags.blank? %>
<div class="col-xs-6 col-sm-6 col-md-4">
<p class="field-label">Tags</p>
<% @artwork.tags.each do |tag| %>
<span class="tags">
<%= link_to tag.name, tagged_url(:tag => tag.name) %>
</span>
<% end %>
</div>
<% end %>
指数:
<div id="artworks" class="transitions-enabled">
<% @artworks.each do |artwork| %>
<div class="box">
<%= link_to image_tag(artwork.image.url(:medium)), artwork %>
</div>
<% end %>
</div>
提前感谢您的帮助!
答案 0 :(得分:0)
终于有了这个工作。这就是我在我的控制器中所做的事情:
def index
if params[:tag]
@artworks = Artwork.tagged_with(params[:tag])
elsif params[:series]
@artworks = Artwork.tagged_with(params[:series])
else
@artworks = Artwork.all
end
end
def tagged
@artworks = Artwork.tagged_with(params[:tag])
end
def series
@artworks = Artwork.tagged_with(params[:series])
end