Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.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 ruby代码在模板中显示为html_Ruby On Rails_Ruby_Angularjs - Fatal编程技术网

Ruby on rails ruby代码在模板中显示为html

Ruby on rails ruby代码在模板中显示为html,ruby-on-rails,ruby,angularjs,Ruby On Rails,Ruby,Angularjs,我有一个rails应用程序,它使用angularjs。在这里,我试图从rails控制器呈现一个模板,并将一个资源传递给该模板。但是用于显示变量的ruby代码与html.erb视图中的显示完全相同 def fail @order = Order.find(1) render 'payments/fail' end 鉴于 <%= @order.as_json %> 我猜问题出在视图文件的名称上。我猜你把它命名为fail.html而不是fail.html.erb。没有.

我有一个rails应用程序,它使用angularjs。在这里,我试图从rails控制器呈现一个模板,并将一个资源传递给该模板。但是用于显示变量的ruby代码与html.erb视图中的显示完全相同

def fail
    @order = Order.find(1)
    render 'payments/fail'
end
鉴于

<%= @order.as_json %>

我猜问题出在视图文件的名称上。我猜你把它命名为
fail.html
而不是
fail.html.erb
。没有.erb后缀,Rails只将文件解释为html文本,并在不解释ruby代码的情况下呈现它

但是,更改文件名并不是正确的解决方案。因为您希望呈现json而不是HTML,所以不需要创建视图模板,所以您应该完全删除模板文件

所有Rails模型都自动具有.as_json方法,因此您可以简单地修改控制器的fail方法,如下所示:

def fail
  @order = Order.find(1)
  render json: @order.as_json
end

另外,如果您想做一些花哨的事情并修改返回的json,您可以在模型内将自己的
定义为\u json
方法。

payments/\u fail.html.erb
?我想要的是模板,而不仅仅是对象。所以。。。我对模板文件的错误命名是否正确?这会在浏览器中输出“”?