基本上我正在使用来自数据库的数据来查找替换一组文本,但替换标记由用户生成,可以是任何大量选择。
当字段名称在变量
中时,如何访问模型记录正常访问
var = model.field_name
但在我的代码中,我想做类似的事情
replacement_tags.each do |tag|
content = content.gsub(/tag/, model.|access attribute with same name as tag|
end
所以如果标签是firstname,则lastname将连续运行model.firstname和model.lastname的gsub。
我不介意我是否以错误的方式解决这个问题,只要有一些方法可以实现这些结果
答案 0 :(得分:3)
当您在Ruby中调用实例方法时,您没有调用任何内容,而是向接收方发送消息。
user.first_name
可以读作“向此user
对象发送消息,要求其返回其名字”
配备了这些知识和this documentation,您可以轻松编写代码
replacement_tags.each do |tag|
content = content.gsub(/tag/, model.send(tag.to_sym))
end