嘗試過各種不同的方法 - 看起來似乎無法解決此問題 - 您的幫助將會非常棒!Rails - acts-as-taggable-on gem - 如何根據標記數量更改標記的CSS樣式
當用戶創建後他們可以通過acts-as-taggable-on gem標記它。如果用戶在各個帖子上寫入標籤2次或更多,我試圖製作該標籤,然後使用與使用的其他標籤不同的CSS樣式。
例如,如果用戶創建三個柱:http://imgur.com/zQEWcRo
- POST1標記爲 「#foo #bar #foobar」
- POST2標記爲「#foobar #placeholder「
- Post3 tagged with」#foobar #foo「
我試圖得到#foobar有比其他標記在所有的帖子不同的CSS樣式(#foo #bar #placeholder)(&最好移動#foobar到是序列中的第一主題標籤)
new.html.erb
<%= form_for @post, html: { multipart: true } do |f| %>
<%= f.text_field :tag_list %>
<%= f.submit %>
<% end %>
posts_controller.rb
class PostsController < ApplicationController
def index
if params[:tag]
@posts = Post.tagged_with(params[:tag]).order(created_at: :desc).page(params[:page]).per_page(2)
else
@posts = Post.all.order(created_at: :desc).page(params[:page]).per_page(2)
end
end
index.html.erb
<div id="posts">
<%= render @posts %>
</div>
<%= will_paginate @posts %>
_post.html.erb
<div class="post">
<%= raw post.tag_list.map {|t| link_to t, tag_path(t)}.join(' ') %>
</div>
<% post.things.order(:order).each do |thing| %>
<%= thing.try(:text) %>
<% end %>
架構
ActiveRecord::Schema.define(version: 20160227154831) do
create_table "posts", force: :cascade do |t|
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "taggings", force: :cascade do |t|
t.integer "tag_id"
t.integer "taggable_id"
t.string "taggable_type"
t.integer "tagger_id"
t.string "tagger_type"
t.string "context", limit: 128
t.datetime "created_at"
end
add_index "taggings", ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], name: "taggings_idx", unique: true
add_index "taggings", ["taggable_id", "taggable_type", "context"], name: "index_taggings_on_taggable_id_and_taggable_type_and_context"
create_table "tags", force: :cascade do |t|
t.string "name"
t.integer "taggings_count", default: 0
end
add_index "tags", ["name"], name: "index_tags_on_name", unique: true
create_table "things", force: :cascade do |t|
t.text "text"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
end
驚人的 - 完美的作品 - 英雄! – domburford