2016-07-07 8 views
0

私は、SecureRandom発行の暗証番号を使用して暗渠へのバニティURLを使用しようとしており、その暗証番号を表示ページで表示しています。レコードが見つかりませんレール5 ActiveRecordエラー

これは、エラーメッセージのスクリーンショットです: enter image description here

これは、ブラウザのURLのスクリーンショットです: enter image description here

マイカルバートコントローラは次のとおりです。

私はお試しください両方:

私の暗渠コントローラのshowアクションで
@culvert = Culvert.find_by_culvert_ident(params[:id]) 
    AND 
@culvert = Culvert.find_by_id(params[:culvert_ident]) 

、両方が

private 
    # Use callbacks to share common setup or constraints between actions. 
    def set_culvert 
     @culvert = Culvert.find_by_culvert_ident(params[:id]) 
    end 

    # Never trust parameters from the scary internet, only allow the white list through. 
    def culvert_params 
     params.require(:culvert).permit(:culvert_ident, :latitude, :longitude, :address, :user_id) 
    end 

同じ結果(スクリーンショット)を得たこれは私のカルバートモデルのidentジェネレータと虚栄心のURLの方法である:

before_create :generate_culvert_ident 

    # Relationships 
    belongs_to :user 

    # Model Validations 
    validates_uniqueness_of :culvert_ident 

    # Ident Generator 
    def generate_culvert_ident 
    begin 
     self.culvert_ident = SecureRandom.hex(3).upcase 
     other_culvert = Culvert.find_by(culvert_ident: self.culvert_ident) 
    end while other_culvert 
    end 

    # Url Direction 
    def to_param 
    culvert_ident 
    end 

だから私の目標はさカルバートを作成するには、固有の識別子を自動的に割り当てて保存し、標準の1,2,3,4 IDの代わりにカスタム識別子を使用して暗渠を表示する

これは私が使用している別のWebアプリでも動作しますが、設定はまったく同じですが、ここでこのエラーが発生しています。あなたにさらなる情報が必要な場合は私に知らせてください!

**

EDIT#1 - コンソール出力

の追加スクリーンショット**

enter image description here enter image description here

+0

レコードはその 'id'で存在しますか? – Vucko

+0

yesコンソールでそれを検索すると、レコードがプルされ、IDが標準のIDと同様に保存されていることが示されます - 実際にはそれはnilとして表示されます - 上のスクリーンショットを参照してください今度は更新してください –

+0

'Culvert.where =? '、' BF83D4 ')。 – Vucko

答えて

0

ので、ここでの問題は、私が暗渠を除去したことでしたコントローラ

before_action :set_culvert 

すぐに問題が解決されたset_userアクションを追加しました。

ご協力いただきありがとうございます。

関連する問題