设计可调用和验证嵌套属性

时间:2016-02-21 19:29:23

标签: ruby-on-rails devise devise-invitable

我有一个用户可以邀请其他用户的应用,我添加了一个具有多个属性的has_many模型Enrollment模型。

devise_invitable模块似乎忽略了验证,所以在我的情况下,如果我的嵌套属性验证失败,它永远不会被捕获,用户仍然会被邀请。

我找到validate_on_invite(默认为false)设置,这可能有效。但是,我需要将条件验证添加到其他User属性(名称,地址等),以便它们在邀请过程中不会触发。

我现在有一个自定义创建控制器方法,并且可以添加一些逻辑来检查参数的存在等。但是,是否有更简单的方法来依赖于模型验证?

更新

我尝试将validate_on_invite更改为true,并使嵌套属性和验证工作正常。我现在遇到的问题是,在User模型中,您不能(据我所知)根据控制器操作(即带有创建操作的邀请控制器)执行条件验证。 / p>

我想我回到邀请控制器中的一些自定义代码。

1 个答案:

答案 0 :(得分:0)

我最终绊倒了if: :accepted_or_not_invited?。我将此添加到所有User验证(电子邮件地址除外)。我可以邀请具有自动保存的嵌套注册属性的用户。我没有嵌套验证工作,但是我没有在我的邀请控制器中添加一个猴子补丁来验证注册参数。