问题描述
|
我有一个数组
ABC = [\"A\",\"B\",\"C\"]
<%= f.select :abc,model::ABC,:include_blank => true %>
如果选择C,则要显示\“ city \”和\“ state \”的输入字段。否则,这些字段应被隐藏。有没有简单的方法可以做到这一点。我不想使用jQuery或Ajax。
解决方法
我不知道一种不使用JavaScript即可更改正在显示哪些字段的方法。
您可以做的就是始终显示城市和州字段,但是只有在选择菜单设置为C时才需要。例如,定义一个验证规则,如果选择菜单设置为C则需要一个字段。目录,使
require_if_c_validator.rb
class RequireIfCValidator < ActiveModel::EachValidator
def validate_each object,attribute,value
if object.your_attribute_name == \'C\' && value == nil
object.errors[attribute] < \'is required\'
end
end
end
然后在您的模型中,将其称为城市和州:
validate :city,:require_if_c => true
validate :state,:require_if_c => true