2016-07-14 10 views
1

私は、Assignment/show.html.erbでlink_toを使って入札を作成しようとしました。強いパラメータparams.require with link_to

show.html.erb:このコード行は動作しませんでしたbids_controller.rbで

<%= link_to "Create Bid", bids_path(:status => "Pending", :assignment_id => @assignment.id, :user_id => current_user.id), :method => :post %> 

params.require(:bid).permit(:status, :assignment_id, :user_id) 

私はそれを得るために、以下のように変更しなければなりませんでした

params.permit(:status, :assignment_id, :user_id) 

私は本当に問題を理解していませんが、私はparams.requireの部分を含んでいないと思いますコードは今後の攻撃や問題から保護されません。

とにかく、私はコードのparams.require部分を含めたいと思います。私は誰かがそれをやる方法について私を導くことができることを願っています。ありがとう!

+0

次の例を試みることができます許可を受けること。 – MageeWorld

+0

ええ、私はそれを理解しています。しかし、私はそれを行うための適切な構文を知りたいです:) – Benjamin

答えて

2

params.require(:BID).permit(:ステータス:assignment_idは、:USER_ID)における通過のparamsが準拠のlink_toタグを構築するため、以下の構造

bid: { 
    status: '', 
    assignment_id: 1, 
    user_id: 1 
} 

を有することになる手段assigment IDとユーザーIDは、彼らがする必要はありませんリンクを通過している場合 - あなたは、強力なパラメータで意図したものの構造は、あなたがあなたのrelatoionsを含むコードの全体を表示する必要が

<%= link_to "Create Bid", bids_path(bid: {status: "Pending", assignment_id: @assignment.id, user_id:current_user.id}), :method => :post %> 
+0

私はあなたが尋ねたようにそれは働いた!ただし、このコード行は現在動作しません: 'Bid.exists?(user_id:params [:user_id]、assignment_id:params [:assignment_id])' – Benjamin

+0

あなたの提案コードは何を意味するのでしょうか?それは入札と呼ばれるオブジェクトを定義するのと同じですか? @KennyChan – Benjamin

+0

私は、コードを に変更して問題を解決したと思います。「Bid.exists?(user_id:params [:bid] [:user_id]、assignment_id:params [:bidid [:assignment_id]) ' – Benjamin

関連する問題