Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何将Rails respond_与创建操作和javascript一起使用?_Ruby On Rails_Ajax - Fatal编程技术网

Ruby on rails 如何将Rails respond_与创建操作和javascript一起使用?

Ruby on rails 如何将Rails respond_与创建操作和javascript一起使用?,ruby-on-rails,ajax,Ruby On Rails,Ajax,我一直在读关于你的书。以前在一些教程中使用过它,但我并不认为我完全理解它 我现在尝试实现的功能是:我有一个类文章的项目列表,每个项目都有一个指向createfavorite操作的链接。当用户单击它时,将创建收藏夹实例,并将用户重定向到主页。我希望它能够在不刷新页面的情况下与AJAX一起工作,并在文章项上执行一些JavaScript,让用户知道它已经成功地获得了青睐。我在相关链接中使用了:remote=>true属性,因此操作在远程执行时没有问题,但我对如何执行操作的.js.erb文件有点困惑 我

我一直在读关于你的书。以前在一些教程中使用过它,但我并不认为我完全理解它

我现在尝试实现的功能是:我有一个类文章的项目列表,每个项目都有一个指向createfavorite操作的链接。当用户单击它时,将创建收藏夹实例,并将用户重定向到主页。我希望它能够在不刷新页面的情况下与AJAX一起工作,并在文章项上执行一些JavaScript,让用户知道它已经成功地获得了青睐。我在相关链接中使用了:remote=>true属性,因此操作在远程执行时没有问题,但我对如何执行操作的.js.erb文件有点困惑

我在控制器中执行了以下操作:

class FavouritesController < ApplicationController
before_filter :authenticate
respond_to :html, :js


  def create
    @article = Article.find_by_id(params[:article_id])
    current_user.Favourites.create(:article => @article)
    redirect_to root_path 
  end

您好,请浏览下面的链接,它简要地解释了respond_with和respond_to。它列出了您可以传递以响应的所有选项


希望这能回答您的问题

我在解决类似问题时多次遇到这个问题。事实证明,我的控制器并没有从内容类型或xhr请求这一事实推断出我假设的格式

在任何情况下,当我从以下位置切换时,它都起作用:

contacts_path
为此:

contacts_path format: :json
我并不关心这一点,所以我更改了我的ajax调用,以包括如下数据类型选项(per):


实际上,那篇博文是我在问这个问题之前读到的。虽然它很好,帮助我更好地理解这个主题,但它并不能帮助我解决这个具体问题
contacts_path format: :json
$.ajax({url: contactUrl, type: 'POST', data: data, dataType: 'json' });