2016-11-08 56 views
0

我有一個模型名稱TeamInvite,我嘗試爲其創建一個team_invite_params方法。允許使用自定義鍵的參數

當我創建表的遷移,因爲我想跟蹤發送者和接收者的,我選擇了自定義字段名稱

SENDER_ID

recipient_id

不要混淆哪個用戶是哪個。

無論如何,當我嘗試並允許對一個team_invite的參數,我無法告訴許可方法,該

編輯:

「team_invite」=> { 「用戶」 => 「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

您需要:

params.permit(:team_invites => [ :user ]) #or whatever other nested team_invite params you want to pass in. 

Google文檔strong_params這裏:https://github.com/rails/strong_parameters

+0

但我需要將其分配專門爲 「USER_ID」 因爲有需要是其他領域也是允許的。 – Jesse

+0

你會在你的控制器動作中做到這一點,例如'@team_invite.user_id = params [:team_invite] [:user]' –

+0

我試過了,但是recipient_id仍然是空的。 – Jesse

相關問題