我正在为一家搬家公司开发 rails 应用程序。我正在研究一种让潜在客户输入将要提交的数据的方法。有很多非常直接的信息(姓名、电子邮件、电话等),但他们还需要输入出发地地址、邮政编码、城市、州和国家以及目的地。我希望“州”框成为一个包含州/省列表的选择框,但仅限于该国家/地区是美国或加拿大。如果该国家/地区不是美国或加拿大,该框将会消失/他们将无法提交值。这在 Rails 中可能吗?还是我更可能使用 jquery?它会在模型、 Controller 还是 View 中实现(看起来像是用于验证的模型,以及用于呈现框的 View ,但我不确定)?
我对 Rails 还是有点陌生,所以如果这应该是一个简单的答案,我很抱歉。我在这个应用程序中使用 Rails 4。
最佳答案
您似乎走在正确的道路上! states/provinces
框的隐藏/显示将由 jQuery 处理。您还可以在模型中使用 ActiveRecord 验证,以确保如果国家/地区不是美国或加拿大,则 state
字段为空:
class MyClass < ActiveRecord::Base
validates :state, presence: false, unless: Proc.new { |m| m.country.in?["USA", "Canada"] }
end
相反:
validates :state, presence: true, if: Proc.new { |m| m.country.in?["USA", "Canada"] }
您可以在RailsGuides page for Active Record Validations了解有关自定义验证的更多信息。 。第 5 节讨论使用自定义方法和过程的条件验证。第 6 节讨论了更强大的自定义验证,但我怀疑您是否需要在这里走得那么远。
关于jquery - Rails 模型中是否有条件需要字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34428248/