我有下面的代码,但它无法运行:
%w(acp bcp ccp tcp).each do |kind|
define_method(kind+"_name") { send "[#{kind}_title ? #{kind}_title.title : '',#{kind}_firstname,#{kind}_lastname].join(' ')" }
end
运行时:
> Form.last.acp_name
NoMethodError: undefined method `[acp_title ? acp_title.title : '',acp_firstname,acp_lastname].join(' ')' for #<Form:0x108daabe8>
有谁知道如何修复它,以便作为代码运行,而不是文字请?
提前谢谢…
最佳答案
%w(acp bcp ccp tcp).each do |kind|
define_method("#{ kind }_name") do
title = send("#{ kind }_title") || ''
array = [ title, send("#{ kind }_firstname"), send("#{ kind }_lastname")]
array.join(' ')
end
end
关于ruby-on-rails - 如何使用字符串插值创建动态方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18639758/