0
私は、SecureRandom発行の暗証番号を使用して暗渠へのバニティURLを使用しようとしており、その暗証番号を表示ページで表示しています。レコードが見つかりませんレール5 ActiveRecordエラー
マイカルバートコントローラは次のとおりです。
私はお試しください両方:
私の暗渠コントローラの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 - コンソール出力
の追加スクリーンショット**
レコードはその 'id'で存在しますか? – Vucko
yesコンソールでそれを検索すると、レコードがプルされ、IDが標準のIDと同様に保存されていることが示されます - 実際にはそれはnilとして表示されます - 上のスクリーンショットを参照してください今度は更新してください –
'Culvert.where =? '、' BF83D4 ')。 – Vucko