0

私は非常に単純であるべき何かを理解しようと頭を悩ませてきたので、何かを見落としているだけだと確信しています. ユーザーがカテゴリを作成し、それらのカテゴリに基づいて関連するストーリーを投稿できるサイトのバニティ URL を作成しようとしています。たとえば、映画のセクションを表示するには、/categories/movies にアクセスする必要があります。カテゴリ ID /categories/1 を使用するように設定すると、問題なく動作します。なんらかの理由で、Rails は title パラメータではなく、id パラメータを使用してカテゴリを見つけようとし続けます。Ruby 2.0.0 と Rails 4.0 を使用しています。「find_by」メソッドがまもなく非推奨になると読んだので、これを処理するより良い方法があれば、それは素晴らしいことです。関連するコードは次のとおりです。

カテゴリー コントローラー

def show
 @categories = Category.find_by_title(params[:title])
 @category = Category.find_by_title(params[:title])
 @posts = Post.where(category: set_category).all
end

Routes.rb

resources :categories

get "/categories/:title" => "categories#show"

ページをレンダリングするときの端末の読み上げ

Processing by CategoriesController#show as HTML
Parameters: {"id"=>"Movies"}

繰り返しますが、パラメータは ID ではなく {"title"=>"Movies"} と読む必要があります。私が言ったように、それは私が見落としていた非常に単純なものだと確信しています. どんな助けでも大歓迎です。ありがとう。

4

1 に答える 1