Переопределение модели рельсов 3.1 - PullRequest
1 голос
/ 09 января 2012

Я пытаюсь переопределить модель драгоценного камня forem, чтобы я мог использовать драгоценный камень thumbs_up для голосования.

Я сделал рельсовую модель Post и пытаюсь унаследовать пост-модель forem по этой строке кода

class Post < Forem::Post

    acts_as_voteable
end

то же самое для контроллера

class PostsController < Forem::Postscontroller

    def vote_up
    begin
      current_user.vote_for(@post = Post.find(params[:id]))
      render :nothing => true, :status => 200
    rescue ActiveRecord::RecordInvalid
      render :nothing => true, :status => 404
    end
  end

end

Я получаю эту ошибку

неопределенный метод `voice_up_post_path '

в моем route.rb

 mount Forem::Engine, :at => "/forums"


resources :posts do
  member do
    post :vote_up
  end
end

Я полагаю, что я делаю что-то действительно глупое здесь, и я неправильно переопределяю модель. Я использовал это Разъяснение о том, как использовать камень голосования "thumbs_up" с постом Rails 3 для настройки thumbs_up

Может кто-нибудь помочь ??

Ответы [ 2 ]

3 голосов
/ 09 января 2012

Если я правильно понял ваш вопрос, вы хотите изменить поведение forem Post, чтобы поддержать голосование с помощью activ_as_votable. Чтобы это работало, вам нужно заново открыть класс Forem :: Post в инициализаторе (например, config / initializers / forem.rb) и добавить к нему строку acts_as_votable, например:

module Forem
  class Post
    acts_as_votable
  end
end

И то же самое для Forem :: PostsController:

module Forem
  class PostsController
    def vote_up
      begin
        current_user.vote_for(@post = Post.find(params[:id]))
        render :nothing => true, :status => 200
      rescue ActiveRecord::RecordInvalid
        render :nothing => true, :status => 404
      end
    end
  end
end
1 голос
/ 10 января 2012

Кажется, это была глупая ошибка, осознал это во время обсуждения с patrickmcgraw.

forem скрывает ваши маршруты, и вы должны упомянуть main_app перед маршрутами, поэтому после написания

main_app.vote_up_post_path вместо vote_up_post_path страница снова открылась.

Надеюсь, это поможет кому-то, пытающемуся использовать forem.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...