Javascript 使用ajax增加整数模型变量
刚开始使用rails时,我遇到了一个障碍,我似乎无法为我的具体案例找到准确的答案 我希望通过ajax在我的“字体”模型中增加变量“投票”。我目前有一个Javascript,它通过在div上单击操作触发这个 我发现的最接近我的问题的例子是一个最受欢迎的按钮,即twitter。然而,大多数“收藏夹按钮”功能使用单独的收藏夹数据模型;我只希望增加变量,因此我认为为这个设计一个全新的数据模型没有什么意义 index.html.erb上的JavascriptJavascript 使用ajax增加整数模型变量,javascript,jquery,ruby-on-rails,ajax,Javascript,Jquery,Ruby On Rails,Ajax,刚开始使用rails时,我遇到了一个障碍,我似乎无法为我的具体案例找到准确的答案 我希望通过ajax在我的“字体”模型中增加变量“投票”。我目前有一个Javascript,它通过在div上单击操作触发这个 我发现的最接近我的问题的例子是一个最受欢迎的按钮,即twitter。然而,大多数“收藏夹按钮”功能使用单独的收藏夹数据模型;我只希望增加变量,因此我认为为这个设计一个全新的数据模型没有什么意义 index.html.erb上的Javascript $("#heading_vote").clic
$("#heading_vote").click(function(){
var fontid='<%= h @font_1.id %>'
$(".text").html(fontid);
$.ajax({type: "GET", url: 'fonts/'+fontid+'/vote', success: function(){
$(".text").html('voted');
}
});
});
font.rb模型(初始化时将“投票”变量设置为默认值0)
我的routes.rb文件(我想这就是问题所在-我是否正确链接到字体控制器中的投票操作?)
如有任何关于调试的帮助或建议,将不胜感激。谢谢他们,我会这么做的:
我想删除js代码,然后:
在路由文件中:
post '/fonts/:id/vote' => 'fonts#vote', as: :vote
在视图中模板:
<%= link_to 'Vote', vote_path(@font), remote: true %>
您可能希望在js.erb文件中写入更多js内容,以使其看起来更友好,但作为演示,警报就可以了。这一点运气好吗?很抱歉回复太晚;非常感谢你迄今为止的帮助。我实现了您所展示的内容,删除Javascript并替换为指向的
链接,但是它仍然不会增加投票变量;事实上,vote.js.erb中的警告甚至没有显示。。有什么想法吗?指向
的链接如下所示,在html中
该链接看起来不错,运行此操作时发布服务器的日志。。也可以在controler中尝试@font.increment!(:投票)
而不是更新属性
明白了!原来我的版面中有
,它正在搜索一个不存在的文件,我需要在我的字体控制器中防止伪造,除了::index
,以防止真实性问题。非常感谢您的帮助,很抱歉回复太晚!
def vote
@font = Font.find(params[:id])
@font.update_attribute("votes",votes+1)
respond_to do |format|
format.html
format.js
end
end
app::Application.routes.draw do
root to: "home#index"
resources :fonts
post '/fonts/:id/vote' => 'fonts#vote'
post '/fonts/:id/vote' => 'fonts#vote', as: :vote
<%= link_to 'Vote', vote_path(@font), remote: true %>
alert('Vote saved!');