我正在尝试在rails中创建消息。但是当我在rails控制台中运行Message.new时,我得到了:
ArgumentError: Unknown key: :from. Valid keys are: :class_name, :class, :foreign_key, :validate ... etc
我的设置如下:
用户模型
has_many :messages
has_many :message_recipients, :as => :recipient, :dependent => :destroy
has_many :received_messages, :through => :message_recipients
消息模型
belongs_to :user
has_many :message_recipients, :dependent => :destroy
has_many :recipients, :through => :message_recipients, :class_name => "User", :from => :recipient
Message_Recipient模型
belongs_to :message
belongs_to :recipient, :class_name => "User", :foreign_key => :recipient_id
感谢您的任何建议或帮助。
答案 0 :(得分:2)
它告诉你:from
不是这一行中的有效选项:
has_many :recipients, :through => :message_recipients, :class_name => "User", :from => :recipient
你应该能够移除那部分。
有关有效选项,请参阅has_many
的文档。
<强>更新强>
在此行的语法中,:from
是has_many
宏/方法的选项哈希中的键。但是has_many
方法正在检查传入的选项,并警告您传入的内容是否未知。这就是:from
将是一个未知的选择。即Rails不知道如何处理它。所以它无效,只是不应该在那里。
答案 1 :(得分:1)
在Message
模型中,在定义与recipients
的has_many关联时,您已通过:from
选项,该选项不是has_many
方法的有效密钥,这就是您收到的原因错误为
ArgumentError: Unknown key: :from. Valid keys are: :class_name, :class, :foreign_key, :validate ... etc
在Message
模型中
has_many :recipients, :through => :message_recipients, :class_name => "User",
:from => :recipient
## ^^
## Remove this
以下是您可以传递给 has_many association
的所有有效选项的参考资料答案 2 :(得分:0)
:from 不是Message模型中使用的has_many关系中的有效选项。这就是为什么你会收到参数错误。
的问题