Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.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/8/svg/2.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 On Rails_Ruby - Fatal编程技术网

Ruby on rails 在控制器上的何处放置常数以访问?

Ruby on rails 在控制器上的何处放置常数以访问?,ruby-on-rails,ruby,Ruby On Rails,Ruby,大家好,我正在使用Ruby-2.5.0和Rails 5开发一个RubyonRails项目。我编写了一个api来检查哈希中是否存在某些单词,如下所示:- parser_controller.rb # frozen_string_literal: true class ParserController < ApplicationController def create search_words = ["Walmart","Optical","Anker"] if

大家好,我正在使用Ruby-2.5.0和Rails 5开发一个RubyonRails项目。我编写了一个api来检查哈希中是否存在某些单词,如下所示:-

parser_controller.rb
# frozen_string_literal: true

class ParserController < ApplicationController
  def create
      search_words = ["Walmart","Optical","Anker"]
      if search_words.select{|w| parser_params.to_s.include?(w) }
        render json: {}, status: 200
      else
        render json: {}, status: 404
      end
    rescue StandardError
    render json: {}, status: 500
  end

  private

  def parser_params
    params.require(:data)
          .permit!
          .transform_keys(&:underscore)
  end
end
parser\u controller.rb
#冻结的字符串文字:true
类ParserController

我想知道这个数组搜索应该放在哪里,因为它的大小可以增加。请帮帮我。感谢您的支持。

您可以在lib文件夹中定义一个singleton类,如下链接所述:


或者,您可以在config/initializers中创建一个文件,在其中定义数组并在应用程序中的任何位置使用它。

您可以在lib文件夹中定义一个singleton类,如下面提到的链接所述:


或者,您可以在config/initializers中创建一个文件,在其中定义数组并在应用程序中的任何位置使用它。

如果搜索词仅在ParserController中使用,请将其设置为常量搜索词

class ParserController < ApplicationController
  SEARCH_WORDS = ["Walmart","Optical","Anker"]
  def create
      if SEARCH_WORDS.select{|w| parser_params.to_s.include?(w) }
        render json: {}, status: 200
      else
        render json: {}, status: 404
      end
    ...
  end
end
class ParserController
如果在多个控制器中使用搜索词,请在ApplicationController中设置常量搜索词

如果在任何地方使用搜索词(models/helpers/custom class/…),请在application.rb或config/initializers/global_constant.rb中设置常量


如果搜索词经常增加或减少,请创建模型(db表)来存储它们。

如果搜索词仅在ParserController中使用,请将其设置为常量搜索词

class ParserController < ApplicationController
  SEARCH_WORDS = ["Walmart","Optical","Anker"]
  def create
      if SEARCH_WORDS.select{|w| parser_params.to_s.include?(w) }
        render json: {}, status: 200
      else
        render json: {}, status: 404
      end
    ...
  end
end
class ParserController
如果在多个控制器中使用搜索词,请在ApplicationController中设置常量搜索词

如果在任何地方使用搜索词(models/helpers/custom class/…),请在application.rb或config/initializers/global_constant.rb中设置常量


如果搜索词经常增加或减少,请创建模型(db表)来存储它们。

它们是否属于任何特定模型?这可以帮助您确定它们不属于任何模型。我只需存储此数组,以便在需要搜索查询时在控制器中使用此数组。search_words=[“Walmart”、“Optical”、“Anker”]它们是否属于任何特定型号?这可以帮助您了解它们不属于任何型号。我只需存储此数组,以便在需要搜索查询时在控制器中使用此数组。search_words=[“沃尔玛”、“光学”、“安科”]感谢search_words仅用于ParserController。在同一控制器中将其设置为常量搜索词是否正确?在任何类中设置常量都是正确的,而不仅仅是在控制器中。了解更多感谢搜索\u仅在ParserController中使用的单词。在同一控制器中将其设置为常量搜索词是否正确?在任何类中设置常量都是正确的,而不仅仅是在控制器中。了解更多谢谢我会努力的谢谢我会努力的。