【问题标题】:Rails 3 - Form Validation - Pretest?Rails 3 - 表单验证 - 预测试?
【发布时间】:2011-01-10 21:29:48
【问题描述】:

我在表单上使用 Rails 验证时遇到了一些问题。我正在做的是,在表单中,用户正在输入他们最喜欢的一些网站的 URL。当他们提交时,我的 create 方法使用 nokogiri 打开 URL 并解析网页的标题。我遇到的问题是,如果用户输入表单并且它是空白的,我的 create 方法试图打开 nil,这导致出错。我尝试像这样向方法添加验证:

validates :url, :presence => true 

如果用户输入表单,此验证不会捕获空文本区域,并且会在检查验证之前尝试打开路径而失败。 Rails 中有没有办法指定我想在创建开始而不是结束时运行验证(我假设正在发生)?

【问题讨论】:

    标签: ruby-on-rails ruby validation


    【解决方案1】:

    为什么不在after_validationafter_create 回调中调用nokogiri?这将优雅地解决您的问题。

    【讨论】:

    • 有没有办法将变量传递给回调?还是只能使用self?
    • 相信你只能用self。但是,您可以在模型上为该值设置可写属性(即,您可以作为实例属性访问的值,但不会持久保存到数据库中)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    • 2019-09-01
    相关资源
    最近更新 更多