加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 保存模型时关联“无效”

发布时间:2020-12-17 03:54:58 所属栏目:百科 来源:网络整理
导读:我有一个俱乐部模型和一个会员模型,它们通过会员模型关联.换一种说法 class Club ActiveRecord::Base has_many :members,:through = :membershipsendclass Member ActiveRecord::Base has_many :clubs,:through = :membershipsend 但是,当我尝试创建新成员并
我有一个俱乐部模型和一个会员模型,它们通过会员模型关联.换一种说法

class Club < ActiveRecord::Base
  has_many :members,:through => :memberships
end

class Member < ActiveRecord::Base
  has_many :clubs,:through => :memberships
end

但是,当我尝试创建新成员并将其添加到俱乐部时,我收到一条错误消息,指出该俱乐部无效.

> club = Club.find(1)
> member = Member.new(:name => 'Member Name')
> member.clubs << club
> member.save

member.save语句将返回false.看一下member.errors.messages,我发现

> member.errors.messages
@messages={:clubs=>["is invalid"]}

真奇怪的是,我的开发环境(使用sqlite3)不会发生这种情况,但仅限于使用mySQL进行的EngineYard部署.

解决方法

我刚刚发现了自己的问题.我的俱乐部类包含一个虚拟属性:密码,仅在创建俱乐部时使用,否则应忽略.事实证明,由于一个错误,密码不会被忽略,并且在保存俱乐部关联时正在验证.所以吉姆斯图尔特的评论是正确的:俱乐部实际上是无效的,即使我认为它是.

在开发过程中没有出现问题的原因是我在开发环境中关闭了密码验证,因此我可以使用简单的密码进行测试.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读