0

ここで完全なレール初心者。Railsでクエリ文字列を処理するにはどうすればよいですか?例:www.something.com/movie?sort = title

ビューをhamlファイルに実装するには、ムービータイトルをクリックするとそのクエリ文字列が送信されるようにするにはどうすればよいですか。さらに重要なのは、ビューをどのように処理するかです。:paramsを使用してそのクエリ文字列にアクセスできる関数をどこに実装すればよいですか。

私はこれに1日以上携わっていますが、そのクエリ文字列がコントローラー関数を呼び出すのか、ヘルパーからモジュールを呼び出すのかを理解できませんでした。

私はその質問について十分に明確であったことを望みます。どんな助けでもありがたいです。

PS:-その列の1つとしてタイトルが付いた映画のテーブルがあります。

4

2 に答える 2

0

あなたの質問は焦点が絞られていないので、私はあなたの問題の一部を想定させてください。

仮定

  1. app /controllers/にコントローラー名movies_controller.rbがあります
  2. フォルダapp/modelsフォルダにmovie.rbという名前のモデルがあります

次に、パス/moviesを使用してリクエストをmovies_controller.rbにルーティングするようにRailsに指示する必要があります。これは、config/routes.rbに以下の行を追加することで実行できます。

resources :movies

www.something.com/moviesを呼び出すと、movies_controller.rbのメソッドインデックスが呼び出されます。したがって、ここに映画を表示するためのコードを記述する必要があります。

class MoviesController < ApplicationController
 def index
   @movies = Movie.all
 end
end

次に、app / views / movies/index.hamlファイルを使用してムービーを表示する必要があります。タイトルで映画を並べ替えるためのリンクがあります。

link_to "Sort by title", movies_path(:sort=>"title")

いいえ、リンクをクリックすると、ユーザーはparamsを使用して同じインデックスメソッドに到達します。以下のようなソート値を取得できます。

params[:sort]

したがって、ソートをサポートするには、コントローラーコードを少し変更する必要があります。

class MoviesController < ApplicationController
 def index
  if params[:sort]
   @movies = Movie.order('#{params[:sort]} ASC')
  else
    @movies = Movie.all
  end
 end 
end

質問する前に、 http://guides.rubyonrails.org/index.htmlを確認することを強くお勧めします。

于 2013-02-05T10:19:11.957 に答える
0

あなたが何を望んでいるのか、私が本当に理解しているかどうかはわかりません。これはあなたに合っていますか?

link_to "My Link", movie_index_path(sort: :title)

params[:sort]次に、 ?で param にアクセスします。

(movie_index_pathルート構成に合わせてください)

于 2013-02-05T09:28:00.107 に答える