我正在建立地点位置的索引页。每个地点的位置都有一个分数。每次用户对某个地点进行投票时,都会计算数据库中的投票
并退回score/percentage
。
在地点index
页面上,我希望将score/percentage
与每个地点相关联,以在用户将yes
或no
单击为“你会推荐按钮吗?”实时。现在,单击该按钮时,所有项目都显示相同的值。
def tally
@place = Place.find(params[:place_id].to_i)
if params[:user_response] == 'yes'
@place.tally_up
elsif params[:user_response] == 'no'
@place.tally_down
end
ActionCable.server.broadcast "tally_channel",
content: @place.tally.percent,
place_id: @place.id
end
class TallyChannel < ApplicationCable::Channel
def subscribed
stream_from "tally_channel"
end
def unsubscribed
# Any cleanup needed when channel is unsubscribed
end
end
App.tally = App.cable.subscriptions.create('TallyChannel', {
connected() {},
disconnected() {},
received(data) {
if (data) {
let placeID = data.places
console.log(data)
$('.score-value').replaceWith("<span class='score-value'>" + data.content + "</span>")
}
}
});
我尝试使用Rails guide for ActionCable
,但实际上并没有提供太多有用的信息。
请,我们将不胜感激。