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].
您可以使用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).
| 归档时间: |
|
| 查看次数: |
4558 次 |
| 最近记录: |