单击提交按钮和在Rails中创建方法之间会发生什么?

时间:2012-05-31 19:49:05

标签: ruby-on-rails

我问这个是因为我有一个单选按钮设置为nil的表单:

 = f.radio_button :estimate_type, nil

我在方法调用的开头就有调试器:

def create
  debugger

当我点击调试器时,我会查看我的参数,他们说价值为on 不是 nil

进入疯狂狼。不知何故,这会在点击时转换。我已经搜索了整个应用程序,寻找可能是漏洞的javascript文件,或任何非常类似于“on”的内容。我检查了所有的基地。 schema.rb中的缺省值,jquery单击事件,模型验证,您为其命名。在任何地方都没有“on”这个词。

所以真正的问题是,有没有一种方法可以将调试器放在一个地方,如果我点击提交,调试器会出现之前模型验证,然后希望在哪里参数仍然是它们的形式。然后我就可以沿着小道走下去,看看它出了什么问题。

3 个答案:

答案 0 :(得分:1)

它与您的JavaScript没有任何关系。这也是我以前经历过的事情,但我不确定为什么它会将nil转换为'on'。我知道传入:nil作为符号会返回一个空字符串,而只是简单地传入false

答案 1 :(得分:1)

尝试解决问题的更好方法可能是将调试器放入验证回调中。

答案 2 :(得分:1)

与rails无关 - 您可以使用浏览器的网络检查程序验证这一点,以确定浏览器实际上是在“on”上发送参数值。

通过尝试将值设置为nil(这实际上没有意义 - 参数值始终是字符串),您将完全从生成的HTML中抑制value属性。

standard表示在这种情况下,输入的默认值应为“on”,这就是您的浏览器提交的内容。