如何使用Ruby on Rails初始化类以设置自定义参数值?

use*_*052 1 ruby parameters initialization ruby-on-rails ruby-on-rails-3

我正在使用Ruby on Rails 3,我想初始化我的课程.在我的情况下,我需要params[:name] ||= {}每次使用该类时设置.

怎么做?


更新我

是否可以使用类似的东西简化事物

class A
  def initialize
    params[:name] ||= {}
  end
end
Run Code Online (Sandbox Code Playgroud)


更新II

我忘了说在我的课上我必须使用该参数作为哈希:

class A
  def initialize
    # code to initialize params[:name] ||= {}
  end

  def action_name
    params[:name][:ronda] = "Jack"
  end
end
Run Code Online (Sandbox Code Playgroud)

如果我尝试设置params[:name][:ronda]没有inizialize params[:name] ||= {},我收到一个错误.为此,我必须初始化课程.

我上面的代码我可以做

  def action_name
    params[:name] ||= {}
    params[:name][:ronda] = "Jack"
  end
Run Code Online (Sandbox Code Playgroud)

它会起作用,但由于我必须将它用于课堂中的每一个动作,我想立即对折叠代码进行设置params[:name].

Pan*_*kos 5

您可以使用initialize函数来设置默认值:

class A
  def initialize
    @params = {name: {}}
  end

  def params
    @params
  end
end

A.new.params # {:name => {}}

您也可以通过以下方式默认访问:

class A
  def initialize
    @params = {}
  end

  def params
    @params[:name] ||= {}
    @params
  end
end

A.new.params # {:name => {}}

区别在于第一个示例在创建时添加:name参数(A.new),而第二个示例在访问时添加它(A.new.params).