Created
July 11, 2012 14:52
-
-
Save kunalchaudhari/3090920 to your computer and use it in GitHub Desktop.
i am using forem gem and i have post model decorator. i would like to make the post taggable and using the act-as-taggable-on gem. but it giving me error that tag_list method is undefine. when i do post = Forem.Post.new and post.tag_list = 'tag1 tag2' in
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<%= f.input :text %> | |
<%= f.input :tag_list %> | |
<% if params[:reply_to_id] %> | |
<%= f.hidden_field :reply_to_id, :value => params[:reply_to_id] %> | |
<% end %> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<h2><%= t("forem.topic.new") %></h2> | |
<%= render "form" %> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Forem::Post.class_eval do | |
acts_as_taggable_on :tags | |
attr_accessible :tag_list | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module Forem | |
class TopicsController < Forem::ApplicationController | |
helper 'forem/posts' | |
before_filter :authenticate_forem_user, :except => [:show] | |
before_filter :find_forum | |
before_filter :block_spammers, :only => [:new, :create] | |
def new | |
authorize! :create_topic, @forum | |
@topic = @forum.topics.build | |
@topic.posts.build | |
end | |
def create | |
authorize! :create_topic, @forum | |
@topic = @forum.topics.build(params[:topic]) | |
@topic.user = forem_user | |
if @topic.save | |
flash[:notice] = t("forem.topic.created") | |
redirect_to [@forum, @topic] | |
else | |
flash.now.alert = t("forem.topic.not_created") | |
render :action => "new" | |
end | |
end | |
private | |
def find_forum | |
@forum = Forem::Forum.find(params[:forum_id]) | |
authorize! :read, @forum | |
end | |
def find_topic | |
begin | |
scope = forem_admin_or_moderator?(@forum) ? @forum.topics : @forum.topics.visible.approved_or_pending_review_for(forem_user) | |
@topic = scope.find(params[:id]) | |
authorize! :read, @topic | |
rescue ActiveRecord::RecordNotFound | |
flash.alert = t("forem.topic.not_found") | |
redirect_to @forum and return | |
end | |
end | |
def register_view | |
@topic.register_view_by(forem_user) | |
end | |
def block_spammers | |
if forem_user.forem_state == "spam" | |
flash[:alert] = t('forem.general.flagged_for_spam') + ' ' + t('forem.general.cannot_create_topic') | |
redirect_to :back | |
end | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment