如何在rails属性中传递动态内容?

时间:2012-10-02 18:17:59

标签: ruby-on-rails ruby

我有两种模式:

Class Foo
field :title
end

Class Bar
 field :description
end

我在IRB尝试过:

1.9.3p125 :001 > f = Foo.new(title: "<%= bar.description %>")
 => #<Foo _id: 506b2de61d41c84b07000002, _type: nil, title: "<%= bar.description %>"> 
1.9.3p125 :002 > f.save
 => true
1.9.3p125 :004 > f.title
=> "<%= bar.description %>"

我如何将Object Bar置于f.title属性中?

有可能吗?

2 个答案:

答案 0 :(得分:1)

您不需要字符串插值,只需将标题设置为bar.description

即可
f = Foo.new(title: bar.description)

如果你想加入额外的东西,你可以这样做。

f = Foo.new(title: "Title for: #{bar.description}") 

如果你真的想要那里的erb处理程序你可以做

f = Foo.new(title: "<%= #{bar.description} %>") 

答案 1 :(得分:1)

这种字符串插值适用于.erb模板,但不适用于简单的ruby对象。 如果您仍想使用插值,则可以执行以下操作:

f = Foo.new(title: "#{bar.description}")