【发布时间】:2016-09-20 08:18:18
【问题描述】:
我有一个Conversation 模型,它有一个initiator 和一个recipient 属性,它们都是User 模型。
创建form_for @conversation 时如何传递@conversation.initiator = User.first 和@conversation.recipient = User.third?
class Conversation < ApplicationRecord
belongs_to :initiator, foreign_key: :initiator_id, class_name: 'User'
belongs_to :recipient, foreign_key: :recipient_id, class_name: 'User'
end
class User < ApplicationRecord
has_many :conversations
end
【问题讨论】:
-
您可以将其作为 hidden_field_tag 传递,例如
-
@Navin,你能举例说明如何做到这一点吗? SO上还有其他问题没有给出明确的答案,也没有得到解决。
-
使用其属性为您的@conversation 创建一个简单的 form_for,然后只需在 form_for 下添加 标记,您将在参数哈希中获得启动器。跨度>
-
@Navin,好吧,这行得通,现在我该如何通过强大的参数:
params.require(:initiator) => <ActionController::Parameters {"#<User:0x007fe586ac7920>"=>""} permitted: false> -
别那样做,你是否创建了强大的参数:params.require 用于对话,然后在同一个哈希中只允许发起者和接收者。