我有一个用户可以邀请其他用户的应用,我添加了一个具有多个属性的has_many
模型Enrollment
模型。
devise_invitable模块似乎忽略了验证,所以在我的情况下,如果我的嵌套属性验证失败,它永远不会被捕获,用户仍然会被邀请。
我找到validate_on_invite
(默认为false)设置,这可能有效。但是,我需要将条件验证添加到其他User
属性(名称,地址等),以便它们在邀请过程中不会触发。
我现在有一个自定义创建控制器方法,并且可以添加一些逻辑来检查参数的存在等。但是,是否有更简单的方法来依赖于模型验证?
更新
我尝试将validate_on_invite
更改为true,并使嵌套属性和验证工作正常。我现在遇到的问题是,在User
模型中,您不能(据我所知)根据控制器操作(即带有创建操作的邀请控制器)执行条件验证。 / p>
我想我回到邀请控制器中的一些自定义代码。
答案 0 :(得分:0)
我最终绊倒了if: :accepted_or_not_invited?
。我将此添加到所有User
验证(电子邮件地址除外)。我可以邀请具有自动保存的嵌套注册属性的用户。我没有嵌套验证工作,但是我没有在我的邀请控制器中添加一个猴子补丁来验证注册参数。