(5つ星)に評価を追加したい先生というモデルがあります。現在、教師リソース内に評価ネストルート(リソース評価)を追加することでこれを実装しています。次に、モデルを作成しました:(id、user_id、teacher_id、ratings、...)による評価。次に、隠しフィールドを持つフォームを作成しました。そのうちの1つはスターと呼ばれます。ユーザーが星をクリックすると、jQueryを使用してAJAXリクエストを送信し、そのユーザーと教師の評価を作成/更新します。
私の混乱はこれです:私はページに2つの別々のフォームを持っています。レビューアのコメントを書くためのフォームがあります。このフォームには、タイトル、コメント(および送信)の2つのフィールドがあります。次に、非表示のフィールドを含む評価フォームがあります。これは、このようなことを行うための正しい方法ですか?どういうわけか、メインのレビューフォームに評価モデルフィールドを埋め込む必要があるように思われます。
どんな助けでも大歓迎です。ありがとうございました。
[編集]
教師オブジェクトを評価する代わりに、ユーザーが教師へのコメントを評価するようにアプリケーションを更新しました
私のセットアップは次のようなものです:
ルート
resources :comments as :teacher_comments do
resource :rating
end
モデル
コメント
has_one :rating
attr_accessible :body, :rating_attributes
accepts_nested_attributes_for :rating
評価
belongs_to :comment
attr_accessible :stars, :user_id, :teacher_id, :comment_id
見る
<%= form_for( @comment, :remote => true, :url => teacher_comments_path ) do |tc| %>
<%= tc.text_area :body, :maxlength => 450 %>
<%= tc.fields_for :rating do |builder| %>
<%= builder.text_field :stars %>
<% end %>
<% end %>
星のtext_fieldが表示されません。表示されていないだけです。見逃したことはありますか?