【问题标题】:How do I create a numerical rating system in Rails?如何在 Rails 中创建数字评分系统?
【发布时间】:2012-01-15 22:54:30
【问题描述】:

我想在 Rails 中创建一个数字评分系统,用户可以在其中从 1 到 10 对帖子进行评分。

我在 Google 上查看过,但我只发现过时的教程和星级评定宝石,它们根本不适合我。

也许有人可以为我指出一个可以帮助我实现这一目标的宝石?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    Ruby Toolbox 列出了几个,尽管大多数是 DOA。 Mongoid_ratings 似乎是最近更新的,尽管您可能不想走 Mongo 路线。

    https://www.ruby-toolbox.com/categories/rails_ratings

    我建议从头开始构建。这里有一个快速(可能是非功能性/不安全)的黑客,可能会帮助您入门:

    路线

    resources :articles do
      resources :ratings
    end
    

    模型

    class Article < ActiveRecord::Base
      has_many :ratings, :dependent => :destroy
    end
    
    class Rating < ActiveRecord::Base
      belongs_to :article
      validates_presence_of :article
      validates_inclusion_of :value, :in => 1..10
    end
    

    控制器

    class RatingsController < ApplicationController
      before_filter :set_article
    
      def create
        @rating = @article.ratings.new :value => params[:value]
        if @rating.save
          redirect_to article_ratings_path(@article), :notice => "Rating successful."
        else
          redirect_to article_ratings_path(@article), :notice => "Something went wrong."
        end
      end
    
      def update
        @rating = Rating.find(params[:id])
        @rating.update_attribute :value, params[:value]
      end
    
      private
        def set_article
          @article = Article.find(parms[:article_id])
        end
    end
    

    在某处的文章视图中:

    form_for [@article,@rating] do |f|
      f.select("rating", "value", (1..10))
      f.submit "Rate this Article"
    end
    

    【讨论】:

    • 嘿伙计!非常感谢详细的回答。问题是我也与用户一起工作,我只需要用户能够对一篇文章进行一次评分。我怎么能做到这一点?
    • 一个复杂的问题,railscasts.com/episodes/209-introducing-devise 可能会让你开始
    【解决方案2】:

    看看 Letsrate gem:https://github.com/muratguzel/letsrate

    非常适合我。

    【讨论】:

      猜你喜欢
      • 2023-03-10
      • 2014-07-12
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-02
      • 2015-11-14
      相关资源
      最近更新 更多