我正在构建我的第一个rails应用程序,并希望实现类似帖子的类似按钮。我可以找到的关于如何执行此操作的大多数资源都涉及使用AJAX。我想知道是否有办法在不使用AJAX的情况下实现类似的按钮?
答案 0 :(得分:6)
以下是解决方案:会重新加载您的网页
posts/index.html.erb
页面上显示了所有posts
,并且每个帖子中都有一个赞按钮。创建一个名为LikeController.rb
的新控制器,它将为帖子创建/删除喜欢的内容。在您的路线中,使其成为嵌套资源,例如:它可以更好地识别哪个帖子获得了类似按钮。
resources :posts do
resources :likes
end
在新创建的控制器中创建两个方法create
和delete
。
like
按钮中,为通过create
的{{1}}方法创建链接。 post_id
方法中为该帖子创建新的create
。可以从您在类似链接中传递的Like
找到帖子。 params[:post_id]
重定向至Like
答案 1 :(得分:0)
您可以使用Faye websockets向JavaScript文件发送类似请求,并将其更新为动态计数。观看有关Faye websockets的rails castcast,并尝试从您的视图中实现发送请求。我相信它会完成你想要的工作。
答案 2 :(得分:0)
你可以在没有Ajax的情况下做到这一点(虽然我不确定你为什么要施加这种约束)。
在页面上有一个不可见的iframe,并让你的喜欢按钮提交一个目标是iframe的表单。提交表单(即单击按钮)现在重新加载框架而不是整个页面。框架中的内容可以与主页通信(直接在window.parent
上调用方法或使用postMessage
),这样您就可以更新页面上的计数器等。