2016-09-20 81 views
0

我正在构建我的第一个rails应用程序,并希望实现一个喜欢帖子的按钮。我可以找到关于如何做到这一点的大部分资源都涉及到使用AJAX。我想知道是否有一种方法来实现不使用AJAX的按钮?是否有可能创建一个没有AJAX的按钮?

+0

你想用你的Like按钮做什么? –

+0

只是简单地表明帖子已被喜欢并且增加了帖​​子的喜欢数量 –

+0

如果用户想要喜欢你的帖子。你将如何实现没有AJAX? –

回答

6

这里是解决方案:它会重新载入网页

  1. 假设目前你是你posts/index.html.erb页面,所有posts展示在并在每一个岗位有一个按钮。
  2. 创建一个名为LikeController.rb的新控制器,它将创建/删除帖子的喜欢。在你的路线中,使它成为一个嵌套的资源,例如:它会更好地识别哪个帖子得到了类似按钮的击中。

    resources :posts do resources :likes end

  3. 创建两个方法,在新创建的控制器createdelete

  4. 在您的文章like按钮中创建create方法的链接,通过post_id
  5. create方法中为该帖子创建一个新的Like。帖子可以从params[:post_id]找到,你已经通过类似的链接。
  6. 成功创建新Like后重定向到back
0

你可以利用王菲的WebSockets发送类似请求,JavaScript文件和更新,像动态计数。观看铁轨投射播客的Faye websockets并尝试从您的视图实施发送请求。我相信它会做你想要的工作。

0

你可以在没有Ajax的情况下做到这一点(尽管我不确定你为什么强加这个约束)。

在页面上有一个不可见的iframe,并让你喜欢的按钮提交一个目标为iframe的表单。提交表单(即点击您的按钮)现在重新加载框架而不是整个页面。框架中的内容可以与主机页面进行通信(可直接在window.parent上调用方法或使用postMessage),以便更新页面上的计数器等。

相关问题