Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.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模式下带有“helper_method”的helpers定义_Ruby On Rails_Ruby On Rails 5 - Fatal编程技术网

Ruby on rails rails 5 api模式下带有“helper_method”的helpers定义

Ruby on rails rails 5 api模式下带有“helper_method”的helpers定义,ruby-on-rails,ruby-on-rails-5,Ruby On Rails,Ruby On Rails 5,编写Rails应用程序时,我过去在视图中没有任何实例变量,而是在控制器上定义helper\u方法s。控制器和视图将以相同的方式使用这些方法。这使我的代码变得干净。现在有了Rails 5中的api模式,我不能再这样做了,没有helper\u方法了。在视图中使用变量是我最讨厌的事情之一 比如说 class ProductsController < ActionController::API helper_method :products, :current_user privat

编写Rails应用程序时,我过去在视图中没有任何实例变量,而是在控制器上定义
helper\u方法
s。控制器和视图将以相同的方式使用这些方法。这使我的代码变得干净。现在有了Rails 5中的
api
模式,我不能再这样做了,没有
helper\u方法了。在视图中使用变量是我最讨厌的事情之一

比如说

class ProductsController < ActionController::API
   helper_method :products, :current_user

   private

   def products
     @products ||= current_user.products
   end

   def current_user
     @current_user ||= User.find(session[:user_id])
   end
end

我没有对此进行测试,但您可以尝试在
helper\u方法之前在控制器中添加
AbstractController::Helpers
模块

包括AbstractController::Helpers


helper\u方法的源代码

我还没有测试过,但是您可以尝试在
helper\u方法
之前在控制器中添加
AbstractController::Helpers
模块

包括AbstractController::Helpers

helper\u方法的源代码

 json.products products do |product|
    json.name product.name
    json.price product.price
    # and so on
 end