小编eva*_*vee的帖子

Rails 4 ActiveRecord :: AssociationTypeMismatch

我试图将记录添加到一个连接表user_logs,其联接user_actionsusers.但是,当我尝试使用以下代码添加项目时,我收到以下错误消息.为什么我收到此错误?我已将下面的模型和架​​构包含在内,以供参考.

2.0.0-p353 :001 > user = User.first
2.0.0-p353 :002 > action = UserAction.first
2.0.0-p353 :003 > user.user_logs
UserLog Load (0.3ms)  SELECT `user_logs`.* FROM `user_logs` WHERE `user_logs`.`user_id` = 1
=> #<ActiveRecord::Associations::CollectionProxy []> 
2.0.0-p353 :004 > user.user_logs << action
(0.3ms)  BEGIN
(0.2ms)  ROLLBACK
ActiveRecord::AssociationTypeMismatch: UserLog(#2156995120) expected, got UserAction(#2177269140)
Run Code Online (Sandbox Code Playgroud)

用户模型

class User < ActiveRecord::Base
   ...
   has_many :user_logs
   has_many :user_actions, :through => :user_logs
end
Run Code Online (Sandbox Code Playgroud)

用户操作模型

class UserAction < ActiveRecord::Base
   has_many :user_logs
   has_many :users, :through => :user_logs
end
Run Code Online (Sandbox Code Playgroud)

用户日志模型 …

ruby activerecord ruby-on-rails

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

activerecord ×1

ruby ×1

ruby-on-rails ×1