2016-10-01 48 views
1

這是一個可能的重複,但我已閱讀並嘗試幾乎所有建議,但我一直在New action視圖中收到錯誤。我使用Rails 5.param缺失或值爲空:ph - rails

我曾嘗試以下:

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

而且也嘗試了以下內容,錯誤消失了,但我的價值觀並沒有保存到數據庫中,只顯示無:

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

修改您new行動

def new 
@ph = Ph.new 
end 

原因你得到的錯誤,因爲當你打的路線phs/new,無鑰匙phparams哈希控制器通過,但你想訪問params[:ph][:amount],這是ph_params的返回值。這就是爲什麼錯誤「param丟失或值爲空」的原因。

如果你想知道在params獲得通過什麼樣的價值觀已經爲每一個請求,下面一行添加到您的application.html.erb

<%= params.inspect %> 

您可能會發現一個哈希與在new頁兩個鍵{"controller" => "phs", "action" => "new"}

但是,當您嘗試創建新的ph對象時,將在params哈希中找到一個密鑰ph

順便說一下,我認爲你不太明白strong parameters。我建議你閱讀http://api.rubyonrails.org/classes/ActionController/StrongParameters.html

+0

哇,這是一個非常新手的錯誤從我身邊。 –

相關問題