jquery - Rails 模型中是否有条件需要字段?

标签 jquery ruby-on-rails ruby ruby-on-rails-4

我正在为一家搬家公司开发 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/

相关文章:

ruby-on-rails - ActiveAdmin 嵌套表单和新项目

javascript - 使用 attr 更改 img 源不适用于 ios5

javascript - Tablesorter 不排序(Jquery 1.8)

ruby-on-rails - Devise + omniauth-facebook 添加权限

ruby-on-rails - RSpec - 无法获取 Controller 中的所有关联属性

ruby - 删除前两行并向文件添加两行

ruby - 每隔一周星期一运行一次作业

ruby-on-rails - 如何在 Windows 10 上安装 rmagick

jquery - 405 (METHOD NOT ALLOWED) for ajax request with django

javascript - 将 PHP 变量回显到按钮值,然后将按钮值发送到输入文本