2010-01-23 1 views
2

У меня простая модель сообщений с заголовком: string и rating: integer, и я хочу добавить возможность оценивать сообщения. До сих пор у меня естьПомощь: добавление рейтинга в существующую модель сообщений в Rails

Когда я нажимаю на рейтинг, я получаю неизвестное действие. Я могу увеличить рейтинг, добавляя @ post.increment! : рейтинг для обновления, но не тогда, когда я создаю свой собственный метод. Любые предложения?

ответ

1

Вот мое решение, если кому-то интересно. Спасибо за помощь ребята.

#Views 
<%= link_to post.rating, increase_post_path(post) %> 

#Controller 
def increase 
    @post = Post.find(params[:id]).increment!(:rating) 
    flash[:notice] = "Thanks for rating" 
    redirect_to posts_url 
end 

#Routes 
map.resources :posts, :member => { :increase => :put } 

Это работает, если вы хотите что-то только для вас, то, что не будет злоупотреблять. Очевидно, что добавление рейтинга на ваши сайты, где другие могут голосовать неограниченное количество раз, просто требует неприятностей.

Предлагаю использовать Votefu, имеет рейтинги и даже имеет пользовательскую карму. Автор был достаточно хорош, чтобы сделать example app.

4

Если у вас есть стандартные маршруты, говоря

map.resources :posts 

вы должны заменить его:

map.resources :posts, :member => { :increase => :put } 

И это создаст маршрут «increase_post_path» с методом «положить» для вашего приложения.

+0

Вот что я делаю неправильно, спасибо. –