2016-10-01 7 views
1

これは重複している可能性がありますが、ほぼすべての提案を読み、試しましたが、新しいアクションビューでエラーが発生し続けます。paramが見つからないか、値が空です。ph-rails

private 
    def ph_params 
     params.require(:ph).permit(:amount) 
    end 

そしてまた次のことを試みたが、エラーは消えたが、私の値がデータベースに保存されていない、唯一の無記号を示しています:

私は次のことを試してみましたRailsの5.

を使用しています

private 
    def ph_params 
     params.permit(:amount) 
    end 

マイコントローラ:

class PhsController < ApplicationController 
    def index 
    end 

    def new 
    @ph = Ph.new(ph_params) 
    end 

    def create 
    @ph = Ph.new(ph_params) 
     respond_to do |format| 
     if @ph.save 
     format.html { redirect_to @ph } 
    else 
     format.html { render "new" } 
    end 
    end 
    end 

    def show 
    @ph = Ph.find(params[:id]) 
    end 

private 
    def ph_params 
    params.require(:ph).permit(:amount) 
    end 
end 

new.html.erbフォーム開始

<%= simple_form_for @ph, url: phs_path do |f| %> 

モデル

class Ph < ApplicationRecord 

end 

私は何かが欠けている可能性があります。あなたの援助は高く評価されています。事前に感謝します。

答えて

1

あなたがルートphs/newを打ったときに、どのキーphがコントローラにparamsハッシュに渡されませんが、あなたがしようとしているので、あなたがエラーを取得している理由は

def new 
@ph = Ph.new 
end 

にごnewアクションを変更します。 ph_paramsの戻り値であるparams[:ph][:amount]にアクセスします。このため、 'paramが見つからないか、値が空です'というエラーが発生します。

あなたはすべての要求のために、あなたはおそらくnewページに2つのキー{"controller" => "phs", "action" => "new"}でハッシュを見つけることができますあなたのapplication.html.erb

<%= params.inspect %> 

に次の行を追加したparamsで渡されたかの値を知りたい場合は。

ただし、新しいphオブジェクトを作成しようとすると、paramsハッシュにphのキーが見つかります。

ところで、私はあなたがかなり理解していないと思いますstrong parameters。私はあなたに読むことをお勧めしますhttp://api.rubyonrails.org/classes/ActionController/StrongParameters.html

+0

私の側から非常に初心者の間違いだった。 –

関連する問題