読者です 読者をやめる 読者になる 読者になる

コンパイラかく語りき

文系新卒プログラマーのメモ

Railsでカンタンな「条件付きページ再読み込み」すらできない

Rails

chuckです。Railsを書いているのですが、いまだにカンタンなページ遷移すらできなくて絶望しています…。

 

やりたいこと

条件つきでページ読み込みをしたいです。

 

いまこちらの単語帳を作っています。

f:id:chuck0523:20151010111028p:plain

右上に「品詞を選択」という項目があります。これをクリックしたら、ページが再読込されるようになっています。

その際に、クリックした品詞でフィルターされた単語を左側に表示したいです。

 

やったこと

link_toをPostメソッドにして、パラメータを渡すようにしました。

f:id:chuck0523:20151010111236p:plain

categoryという名前で品詞を渡して、byCategory_pathに飛んでいます。

参考:link_toをPOSTとして使う - 線路は続くよどこまでも。

 

こちらがroute.rb

f:id:chuck0523:20151010111347p:plain

getだけだったので、postメソッドも用意しました。

 

そしてこちらがアクション

f:id:chuck0523:20151010111434p:plain

上がgetメソッドで、下がpostメソッドになります。

postメソッド内で、paramsで渡ってきた品詞を条件にして、whereメソッドを使っています。

 

エラー

「品詞から選択」をクリックするとこのとおり。

f:id:chuck0523:20151010111603p:plain

エラーになってしまいます。テンプレートがない??どういうことなんでしょう。。。。

 

 

所感

たぶん、色々と理解できてないんでしょうね。。。 

getメソッドpostメソッドに関して、Railsでどのように扱われるのか。routeやactionをどのように対応させるべきか。など。

項目を選択して、リクエストに渡して、それを条件にデータを絞り込んで再表示なんて、Webアプリケーションの基本なのに…。ショック。勉強しよう。