【发布时间】:2016-02-16 07:29:29
【问题描述】:
我正在尝试在我的模型Company 中进行一些条件验证。基本上这个想法是Company 被许多不同的控制器使用,每个控制器都有自己的验证要求。我的想法是使用attr_accessor 添加一个标识相关控制器的属性,如下所示:
<%= company.hidden_field :controller_context, value: "incorporation" %>
但是,我一直无法使用 :controller_context 作为验证条件。
validate :final_incorporation, if: "controller_context=='incorporation'"
上面没有给我任何错误,但也没有触发验证。但是,如果我尝试使用以下内容在我的日志中获取 controller_context 的值:
logger.debug "controller_context: #{controller_context}"
我得到了错误
undefined local variable or method `controller_context'
我一直在谷歌上寻找解决方案。我已经看到一个建议编辑我的控制器以适应这种情况,但由于各种原因,这似乎不是最佳选择。我可能在这里遗漏了什么?
提前致谢。
【问题讨论】:
-
你说它被很多控制器使用是什么意思?
-
@JawadKhawaja 感谢您的回复;这意味着它被他们引用。公司可以通过公司、市值表或可转换票据进行编辑。所有这些都有自己的特定要求需要验证。
标签: ruby-on-rails validation ruby-on-rails-4 attr-accessor