1
我在表单中动态地填充选择标记。选择标记通过查询填充到Payee
。我有一些字段想显示为元素的文本值。但是它必须有条件地完成。例如。Rails有条件的选择内容
领域:
:company
:first_name
:last_name
我可以连接在文本框中输入这三个像这样:
f.select :payee_id, Payee.all.collect { |p| [p.company.to_s + " " + p.first_name.to_s + " " + p.last_name.to_s, p.id] }
以上不工作我想要的方式。如果company
存在,我想省略first_name
和last_name
。
如果company
是空白的,我想只显示first_name
和last_name
目前如果company
和first_name
存在它加到两个在一起,我不想要。
我知道如何分别查询每个案例的数据库,但我不知道如何组合结果,因此select标签将正确显示。
到目前为止,以下是我的帮手。我知道它现在是一团糟,但我需要帮助理解完成这件事的方法。
def expense_payee_id_field(f)
@payee_with_company = Payee.where("company IS NOT NULL and company !='' ")
@payee_without_company = Payee.where("(first_name != '' or last_name != '') and company = '' ")
f.select :payee_id, Payee.all.collect { |p| [p.company.to_s + " " + p.first_name.to_s + " " + p.last_name.to_s, p.id] }
end
简单。只有一行逻辑大声笑 – ctilley79
得爱红宝石! –
最后一个问题。这适用于NULL值,但不适用于空字符串。什么情况下会测试空字符串以及NULL?应该空字段为NULL? – ctilley79