2016-07-20 2 views
0

私はRails 4.2.4を使用しています。私のコントローラでは、私はこのRoRでは、フォームを送信する際にこの「Unpermittedパラメータ」を避けるにはどうすればよいですか?

def update 
    @user = current_user 
    if @user.save_with_address(user_params) 
    … 
    end 

    private 

    def user_params 
     params.require(:user).permit(:first_name, :last_name, :dob, :address, :automatic_import) 
    end 

と私のモデルでは(私は「users.address_id」の列を持っている私の「ユーザー」テーブルに基づいて)、私はこの

class User < ActiveRecord::Base 
    belongs_to :address 
    attr_accessor :address 

が、ときに持ってきました私の「user_params」関数が呼び出されたメッセージと私のアドレスオブジェクトのISN」:私は、私は、「アドレス許可されていないパラメータ」を取得

Parameters: {"utf8"=>"✓", "authenticity_token"=>”tjLutbCuZUmLImSRnoRUCtcG8O0u070YixqjnMm5hmAZhn94fFte4jpWgB4hoOstiP9vJTj/c081EJ8NYnbMvg==", "user"=>{"first_name"=>"D.", "last_name"=>”LastName”, "dob(2i)"=>"", "dob(3i)"=>"", "dob(1i)"=>"", "address"=>{"city"=>"golden", "state"=>"3547", "country"=>"0"}, "automatic_import"=>"0"}, "commit"=>"Save", "id"=>"1"} 

次のデータを(上に示した)私の「更新」メソッドに私のフォームを送信します私のユーザーオブジェクトの一部として保存されます。これを避けるためには、何を構造化する必要がありますか?

答えて

0

アドレスはハッシュなので、個々のフィールドはすべて指定する必要があります。

params.require(:user).permit(:first_name, :last_name, address: [:city, :state, :country]) 
+0

私が行を変更 "params.require(:ユーザー).permit(:FIRST_NAME、:LAST_NAME、:DOB、アドレス:[:都市、:国家:国]:automatic_import)"、私は、エラーが "構文エラー、予期しない")、期待=> "を取得します。私はあなたが私が逃したものが分からない "アドレス:"ブロックを切り取り貼り付けました。 – Dave

+0

この場合、アドレスは最後のパラメータでなければなりません。 –

関連する問題