我想创建一个帮助方法,可以将Rails查找结果转换为句子,我指定结果,以及用于制作句子的列。例如:
def items_to_sentence(items, label_column)
items.map { |u| u.(label_column) }.to_sentence
end
我只是不确定如何告诉Rails使用我指定的列。
谢谢你的期待。
答案 0 :(得分:2)
如果items
包含ActiveRecord对象(或任何其他具有与列名匹配的访问方法的对象),则可以使用send
:
def items_to_sentence(items, label_column)
items.map { |u| u.send(label_column) }.to_sentence
end
或等效地:
def items_to_sentence(items, label_column)
items.map(&(label_column.to_sym)).to_sentence
end
或者,如果那太吵了:
def items_to_sentence(items, label_column)
sym = label_column.to_sym
items.map(&sym).to_sentence
end