##実現したいこと・現状の問題
Ruby on Rails(5.0.0.1)にて、こちらの記事を参考にして星型レビューRatyを使いたいと考えています。
・/lib/jquery.raty.min.jsをassets/javascriptのフォルダに入れる。
・/lib/imgの中身を全てassets/imagesのフォルダに入れる。
上記まで終わって、つづいてビューの記述に入ったのですが、表示できません。
ミン大となっているのは下記2点です。
(1) jQuery Ratyで星型レビューを表示させる(hoverしたときに星の色が変わる仕組みを想定)
(2) Railsのformに格納する記述法が想像つかない。
Ruby
1<%= f.select :rate, {'1' => 1, '2' => 2, '3' => 3, '4' => 4, '5' => 5,}, class: "form-control" %>
通常であれば上記のような記述法で数字を選択してDBに保存するかと思います。しかし、今回のようなUIではどのような記述法が正しいのかが文献いくつか見てみたのですが、思い当たりません。
##該当するソースコード
<_form.html.erb>
<%= form_with(model: user, local: true) do |form| %> <% if user.errors.any? %> <div id="error_explanation"> <h2><%= pluralize(user.errors.count, "error") %> prohibited this user from being saved:</h2> <ul> <% user.errors.full_messages.each do |message| %> <li><%= message %></li> <% end %> </ul> </div> <% end %> <div class="field"> <%= form.label :name %> <%= form.text_field :name, id: :user_name %> </div> <div class="field"> <%= form.label :email %> <%= form.text_field :email, id: :user_email %> </div> <div class="field"> <%= form.label :rate %> <%= form.number_field :rate, id: :user_rate %> </div> <div class="field"> <div id="star">こんにちは</div> </div> <script> $('#star').raty({ size : 36, starOff: '<%= asset_path('star-off.png') %>', starOn : '<%= asset_path('star-on.png') %>', scoreName: 'review[point]' }); </script> <div class="actions"> <%= form.submit %> </div> <% end %>
<jquery.raty.js>
javascript
1/*! 2 * jQuery Raty - A Star Rating Plugin 3 * 4 * The MIT License 5 * 6 * @author : Washington Botelho 7 * @doc : http://wbotelhos.com/raty 8 * @version : 2.7.1 9 * 10 */ 11・・・
現状、viewには従来のフォーム以外は表示されていません。
##追記
ruby
1<%= form_with(model: user, local: true) do |form| %> 2 <% if user.errors.any? %> 3 <div id="error_explanation"> 4 <h2><%= pluralize(user.errors.count, "error") %> prohibited this user from being saved:</h2> 5 6 <ul> 7 <% user.errors.full_messages.each do |message| %> 8 <li><%= message %></li> 9 <% end %> 10 </ul> 11 </div> 12 <% end %> 13 14 <div class="field"> 15 <%= form.label :name %> 16 <%= form.text_field :name, id: :user_name %> 17 </div> 18 19 <div class="field"> 20 <%= form.label :email %> 21 <%= form.text_field :email, id: :user_email %> 22 </div> 23 24 <div class="field"> 25 <div id="star">こんにちは</div> 26 </div> 27 28 <script> 29 $('#star').raty({ 30 size : 36, 31 starOff: '<%= asset_path('star-off.png') %>', 32 starOn : '<%= asset_path('star-on.png') %>', 33 scoreName: 'user[rate]' 34 }); 35 </script> 36 37 <div class="actions"> 38 <%= form.submit %> 39 </div> 40<% end %>
↓
回答1件
あなたの回答
tips
プレビュー