23466


ActiveRecord::RecordNotFound in NotesController#showと表示されました。  
Couldn't find Note with 'id'=showとさらに表示されました。  
notes_controller.rbのprivateメソット以下のset_noteメソットがおかしいようで  
def set_note  
@note = Note.find(params[:id])←ここの部分がおかしい  
end  
と表示されました。  
idがshowメソットに記されていないという認識で間違いないですよね？  
SequelProを見ても、notesテーブルにきちんと投稿したカラムにidが書かれています。  
何かコマンドを打ち忘れ、データが反映されていないのでしょうか？  
回答お願いします。  
routes.rbは  
Rails.application.routes.draw do

devise_for :users  
resources :users, only: [:index, :show, :edit, :update]  
resources :notes, only: [:show, :create, :edit, :update, :destroy]

get'/top' => 'home#top'

get'/connection' => 'home#connection'  
get'/notes/new' => 'notes#new'  
post'/notes' =>'notes#create'  
get'/notes' =>'notes#index'  
get'/show' =>"notes#show"  
get'/edit' =>'notes#edit'  
patch'/notes/:id' =>"notes#update",as:'update_note'  
delete'/notes/:id' =>"notes#destroy",as:'destroy_note'

post '/like/:note_id' => 'likes#like', as: 'like'  
delete '/unlike/:note_id' => 'likes#unlike', as: 'unlike'

root 'home#top'  
get'/about' => 'home#about'  
end  
のようになっています。  
idはshowである、のように記述していないのでは？と思って困っています。  
お願いいたします。


CC BY-SA 3.0
2016-03-24T12:11:17.410
23420
2016-03-25T23:57:34.960
2016-03-25T01:56:12.323
14754
14754
question
ruby-on-rails
ActiveRecord::RecordNotFound in NotesController#showの意味


`params[:id]`が"show"になっているようです。  
これは`http://server/notes/show`か`http://server/notes/show/1`のようなURLでnoteを表示(show)しようとしている、ということだと思います。実際は`http://server/notes/1`とか、`/notes/[id]`の形式で表示(show)します。


CC BY-SA 3.0
2016-03-24T21:00:30.650
23432
2016-03-24T21:00:30.650
14928
23420
answer


_idがshowメソットに記されていないという認識で間違いないですよね？  
idはshowである、のように記述していないのでは？_

間違いです。

`Couldn't find Note with
'id'=show`は「Noteクラスで表されるデータの中には'id'フィールドの値が"show"であるものは見つかりませんでした」と言っています。「idはshowである」のような記述が必要だと言っているのではありません。


CC BY-SA 3.0
2016-03-25T23:57:34.960
23466
2016-03-25T23:57:34.960
13972
23420
answer