Я использую act-as-taggable-on. Я пробовал несколько подходов, но никто из них не работает.Как сделать так, чтобы сообщения помечены флажками?
На взгляд:
<%= check_box("post", "add_politics", {:class=> "post"}) %>
<%= f.label :politics %>
<%= check_box("post", "add_tech") %>
<%= f.label :tech, 'Technology' %>
<%= f.check_box :entertainment %>
<%= f.label :entertainment %>
<%= f.check_box :sports %>
<%= f.label :sports %>
<%= f.check_box :science %>
<%= f.label :science %>
<%= f.submit %>
В модели:
def add_politics; self.tag_list.add('politics'); end
def add_tech; self.tag_list << 'tech'; end
def add_entertainment; self.tag_list << 'entertainment'; end
def add_sports; self.tag_list << 'sports'; end
def add_science; self.tag_list << 'science'; end
def add_crime; self.tag_list << 'crime'; end
def add_business; self.tag_list << 'business'; end
def add_social; self.tag_list << 'social'; end
def add_nature; self.tag_list << 'nature'; end
def add_other; self.tag_list << 'other'; end
В контроллере:
@post.tag_list << 'politics' if params[:post][:politics]
@post.tag_list << 'tech' if params[:post][:tech]
@post.tag_list << 'entertainment' if params[:post][:entertainment]
@post.tag_list << 'sports' if params[:post][:sports]
@post.tag_list << 'science' if params[:post][:science]
@post.tag_list << 'crime' if params[:post][:crime]
@post.tag_list << 'business' if params[:post][:business]
@post.tag_list << 'social' if params[:post][:social]
@post.tag_list << 'nature' if params[:post][:nature]
@post.tag_list << 'other' if params[:post][:other]
Что в конечном итоге происходит, что только развлечение, спорт, наука. ... другие отображаются, потому что те, которые имеют формат <% = f.check_box: tag%>. Но снятие или проверка их не имеет значения - те типы тегов всегда будут отображаться. Что, черт возьми, происходит?
не ваши руки больно от вводить тот же код снова и снова? попробуйте реорганизовать его немного –