cra*_*r65 2 ruby hash key erb dynamic
我正在尝试在erb文件中进行'render'调用,其中哈希的键是动态命名的.例如...
<% object_type_abbr = ["pos", "job_description", "policy", "procedure", "step", "task", "product"] %>
<%= render path.to_s,
model_id: @model.id,
object_type_abbr[i]: orphan,
row_no: row_no,
is_orphan: true
%>
Run Code Online (Sandbox Code Playgroud)
问题是这种语法无法识别.我已尝试使用#{ruby var name}语法(此处建议),但当然这不适用于HTML.
我也尝试过object_type_abbr [i] .to_sym,这没什么区别.
我知道这必须存在,但找不到它.
一种解决方案是=>
在哈希中使用该条目的符号,例如
model_id: @model.id
object_type_abbr[i].to_sym => orphan,
....
Run Code Online (Sandbox Code Playgroud)
将键映射到散列中的值的标准方法是使用key => value
(火箭)表示法.
当你写model_id: @model.id
这是速记的时候:model_id => @model.id
- Ruby提供了这个简写,因为创建密钥是符号的哈希是一个常见的用例.但是对于类似于object_type_abbr[i]:
冒号左边的东西不是符号名称的东西,使用这种语法是无效的.
使用=>
表示法时,键可以是任何表达式,包括计算符号的表达式.
归档时间: |
|
查看次数: |
1495 次 |
最近记录: |