Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.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 5 API中呈现视图_Ruby On Rails_Ruby_Ruby On Rails 5 - Fatal编程技术网

Ruby on rails 在Rails 5 API中呈现视图

Ruby on rails 在Rails 5 API中呈现视图,ruby-on-rails,ruby,ruby-on-rails-5,Ruby On Rails,Ruby,Ruby On Rails 5,我通过railsnew--API用rails 5生成了一个只支持API的rails应用程序。我已经决定要包含一个用于测试某些东西的视图,但在加载视图时遇到了问题 我用一些文本创建了一个users/index.html.erb文件,我的控制器现在只是def index;结束但当我点击/users URL时,没有显示任何内容。我还试着在config/application.rb中注释掉#config.api_only=true,但这并不影响任何事情。对如何进行有什么建议吗 为此,您不需要取消注释co

我通过
railsnew--API
用rails 5生成了一个只支持API的rails应用程序。我已经决定要包含一个用于测试某些东西的视图,但在加载视图时遇到了问题


我用一些文本创建了一个users/index.html.erb文件,我的控制器现在只是
def index;结束
但当我点击/users URL时,没有显示任何内容。我还试着在config/application.rb中注释掉
#config.api_only=true
,但这并不影响任何事情。对如何进行有什么建议吗

为此,您不需要取消注释
config.api_only=true
,只需从
ActionController::Base
继承您的控制器,或者在
应用程序控制器中执行此操作(生成共轨的默认设置)

代码:

  • 仅适用于此控制器
    YourController
  • 对于所有应用程序
    ApplicationController

  • 这来自ActionController::Metal文档

    它说:

    默认情况下,除了显式调用>响应\主体=、内容\类型=、状态=,ActionController::Metal不提供渲染>视图、部分或其他响应的实用程序。要添加在普通控制器中使用的渲染帮助程序>,可以执行以下操作:

    class HelloController < ActionController::Metal
     include AbstractController::Rendering
     include ActionView::Layouts
     append_view_path "#{Rails.root}/app/views"
    
      def index
       render "hello/index"
      end
    end
    
    类HelloController

    因此,我自己也尝试过,只需添加两个模块,就可以在将其用于ActionController::API时正常工作。谢谢-第一点对我不起作用,但第二点对我起作用。非常感谢。奇怪的是,因为我只测试了第一点,但无论如何行为都是相似的:)如果html端点使用会话或cookie(例如,与Desive类似),那么从API应用程序呈现html视图时会出现其他问题,因为这些问题是用仅API的rails解决的。