我有一个名为TeamInvite的模型,我正在尝试为其创建team_invite_params方法。
当我为表创建迁移时,因为我想跟踪发件人和收件人,所以我选择了自定义字段名称
sender_id
和
recipient_id
不要混淆哪个用户是哪个。
无论如何,当我尝试并允许team_invite的参数时,我无法告诉许可方法
修改
" team_invite" = GT; {"用户" = GT;" 2"}
实际上应该是 recipient_id 下的内容。我尝试的所有方法要么不工作,要么最终都没有传递任何价值。
控制器
def create
@team_invite = TeamInvite.new(team_invite_params)
end
模型
class TeamInvite < ApplicationRecord
belongs_to :recipient, class_name: "User"
belongs_to :sender, class_name: "User"
end
PARAMS:
{"utf8"=>"✓", "authenticity_token"=>"0QLA9YiTu9nAf6QJLX5rg0DWa7CAMjqGOlUBICbcL8Ucs2DsCDgGBnhiDXPa/ot8DK0xwTR1D7MASu4/9tVj0w==", "team_invite"=>{"recipient_id"=>"2"}, "commit"=>"Save Team invite"}
查看(如果重要):
<%= form_for :team_invite, url: team_invites_path do |f| %>
<%= f.select :recipient_id, User.all.collect { |p| [ p.name, p.id ] }, include_blank: false %>
<%= f.submit %>
<% end %>
迁移:
class CreateTeamInvite < ActiveRecord::Migration[5.0]
def change
create_table :team_invites do |t|
t.references :team, foreign_key: true
t.integer :recipient_id
t.integer :sender_id
t.timestamps
end
end
end
答案 0 :(得分:0)
你需要:
params.permit(:team_invites => [ :user ]) #or whatever other nested team_invite params you want to pass in.
strong_params的文档:https://github.com/rails/strong_parameters