Scaffoldingで生成したコードを写経
Scaffoldingで生成したコードを、再度、自分の手で書いて見ながら、
ちょっとコードを変えたりして、遊んでいます。
Rails では、/books/show/1 というURLをたたくと、
BooksContoller#show にパラメータとして'1'を渡して
respond_to というメソッドによって、show.html.erbに画面が
遷移します。
このとき、遷移元の index.html.erb では、以下のように記述します。
<%= link_to 'Show', book %>
この結果として、リンク先には /books/1 などのように、URLが生成されます。ここでの1は、bookオブジェクトのidです。
Rails では、/books/1 は、デフォルト(resources :books という宣言がroutes.rb に必要)でshowアクションを呼ぶことを意味します。
従って、BooksController#show としてこの処理を実装するのが望ましいということです。
しかし、この時に、BooksController#kensaku メソッドを呼び出して、kensaku.html.erb の画面に遷移する、という形にすると、リンクの書き方は面倒になります。
<%= link_to 'Show', ' books/kensaku/' + book.id.to_s%>
こんなこと普通やらないですよね。
レールを逸脱してみたら、面倒になったということです。
実際の業務アプリ実装でも、デフォルトのshow とか edit をやっぱり活用していくんでしょうか。いろんなオペレーションが必要になったりしないのかなぁ。
というわけで、基本的なCRUDがなんとなくできるようになってきているところです。