0

レシピ アプリに星評価システムを追加したいと考えています。各ユーザーは、異なるレシピを 1 回評価できます。Jquery の率を読んだことがありますが、それは始めるのに適した場所です。http://www.radioactivethinking.com/rateit/example/example.htm私の質問は、これを Rails 3 で動作させる方法に関するものです。私の最初の考えは

そのように見える評価モデルをセットアップします

class Rating < ActiveRecord::Base

has_many :recipes
has_many :users
attr_accessible :recipe_id, :user_id, :number  
validates_uniqueness_of :user_id, :scope => :recipe_id
end

モデル関係を設定する

class Recipe < ActiveRecord::Base

has_many :ratings
end

class User < ActiveRecord::Base

has_many :ratings
end

コントローラ

class RatingsController < ApplicationController

 def new
 @rating = Rating.new
 end

 def create
 @rating = Rating.new(params[:rating])
  if @rating.save
    redirect_to my_recipes_path, :notice => "Thanks #{current_user.name} Recipe successfully Rated."
 end

前に述べたように、HTML 範囲入力を使用できる Jquery プラグイン rateit の使用を考えています。

<input type="range" min="0" max="5" value="0" step="0.5" id="backing2">
<div class="rateit" data-rateit-backingfld="#backing2"></div>

私の考えでは、星の評価をモデルに送信するには、値を隠しフィールドとして送信する必要があります。

<%= form_for @rating do |f| %>
<%= f.hidden_field :user_id, :value => current_user.id %>
<%= f.hidden_field :recipe_id, :value => recipe.id %>
<%= f.submit 'Rate Recipe' %>
<% end %>

よくわからないのは、与えられた評価をモデルに入れる値にリンクする方法です.理想的には、Ajaxリクエストを介してこれを達成したいと思います.

多くのコードが間違っている可能性がありますか? 誰かが私を正しい方向に向けるか、少なくともこれまでの間違いを指摘してくれることを期待していた前に、このようなことにアプローチしたことはありませんでした

ありがとう

4

1 に答える 1

2

The Rateit Gem を使用してみませんか

https://github.com/ouvrages/rails-rateit

私はそれを使用していませんが、「Rateit Gem」をグーグルで検索したところ、それがトップヒットでした.

于 2013-02-18T12:31:53.207 に答える