在自身内部引用哈希项

bas*_*eck 4 ruby ruby-1.9 ruby-1.9.2

我有一个很短的问题.是否可以使用以下内容初始化哈希:

row = {
    :title => "row title",
    :slug => row[:title].paremeterize
}
Run Code Online (Sandbox Code Playgroud)

换句话说,我可以以某种方式引用自身内部的单元化哈希,或者我必须这样做:

row = {
    :title => "row title"
}
row[:slug] = row[:title].paremeterize
Run Code Online (Sandbox Code Playgroud)

感谢您的评论.当然,这段代码不起作用.我问是否有类似的方法,可能有不同的语法.Ruby对我来说充满了惊喜:)

cor*_*ard 6

你会以一种相当奇怪的方式谈论这个问题.当您遇到很少记录(或不可能)的方式尝试使用该语言的情况时,请尝试考虑您正在做什么.

title = "foobar"

row = {
  :title => title,
  :slug => title.parameterize
}
Run Code Online (Sandbox Code Playgroud)

更好......

class Row
  attr_accessor :title

  def slug; title.parameterize; end
end

foo = Row.new :title => 'foo bar'
foo.slug    #=> "foo-bar"
Run Code Online (Sandbox Code Playgroud)