rubyの値が有効なのは、最初の表示だけです。
何かをクリックした後に表示を動的に変えたい場合は、JavaScriptの担当になります。
追記
データベースの値を更新するには、ajaxで値をrailsに渡す必要があります。
コントローラの詳細が分からないので、仮に POST /topic/:id/update_num というnumの値を+1するアクションがあるとします。
Controller
ruby
1def update_num
2 @topic = Topic.find(params[:id])
3 @topic.num + 1
4 @topic.save!
5
6 result = {
7 num: @topic.num
8 }
9 render json: result
10end
View
html
1<div id="poll1" data-id="<%= @topic.id %>"><%= @topic.num %></div></p>
2
3<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
4<script>
5$(function() {
6 // click
7 // mouseover, mouseout, mousemove
8 $('#poll1').click(function() {
9 var id = $(this).attr('data-id');
10 var url = '/topic/' + id + '/update_num';
11 var params = {};
12 $.ajax({
13 type: 'POST',
14 dataType: 'json',
15 url: url,
16 data: params,
17 timeout: 5000
18 }).done(function(data, textStatus, jqXHR) {
19 $(this).text(data.num);
20 }).fail(function(jqXHR, textStatus, errorThrown) {
21 alert('エラーが発生しました');
22 });
23 });
24});
25</script>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/02 14:43
2017/06/03 01:45 編集