-1

私はEdxの問題Homeowrk2に約2時間取り組んできました。私は公式に立ち往生しています。どうやって何かを作るのですか。この問題はと関係があります

私がしなければならないのは、Movie Titleをsortとしてリンクして、Movieを順番にソートすることです。

-#  This file is app/views/movies/index.html.haml
%h1 All Movies

%table#movies
  %thead
    %tr
      %th= link_to 'Movie Title', new_movie_path
      %th Rating
      %th Release Date
      %th More Info
  %tbody
    - @movies.each do |movie|
      %tr
        %td= movie.title 
        %td= movie.rating
        %td= movie.release_date
        %td= link_to "More about #{movie.title}", movie_path(movie)

= link_to 'Add new movie', new_movie_path

宿題によると、「すべての映画」が整理されるようにインデックスを編集することになっています。rubyのsortメソッドを調べましたが、それはmovie.order()です。かっこに何を入れたらいいのかわかりません。

class MoviesController < ApplicationController

  def show
    id = params[:id] # retrieve movie ID from URI route
    @movie = Movie.find(id) # look up movie by unique ID
    # will render app/views/movies/show.<extension> by default
  end

  def index
    @movies = Movie.order(id)

  end

  def new
    # default: render 'new' template
  end

  def create
    @movie = Movie.create!(params[:movie])
    flash[:notice] = "#{@movie.title} was successfully created."
    redirect_to movies_path
  end

  def edit
    @movie = Movie.find params[:id]
  end

  def update
    @movie = Movie.find params[:id]
    @movie.update_attributes!(params[:movie])
    flash[:notice] = "#{@movie.title} was successfully updated."
    redirect_to movie_path(@movie)
  end

  def destroy
    @movie = Movie.find(params[:id])
    @movie.destroy
    flash[:notice] = "Movie '#{@movie.title}' deleted."
    redirect_to movies_path
  end

end

したがって、根本的な問題は、メソッドインデックスを正しく編集して「Movie」ディレクトリの順序を指定する方法がわからないことと、ヘッダーのMovieTitleをインデックスを指すように割り当てる方法がわからないことです。

4

3 に答える 3

2

ビューで

 %th= link_to 'Movie Title', movies_path(sort_param: 'title')

とコントローラーで

  def index
    @movies = Movie.order(params[:sort_param])
  end

「評価」、「リリース日」などの他の見出しについても同じことができます。

于 2012-10-22T08:52:15.043 に答える
0

確認できordering with Railsます。id関数内の変数indexが存在しません。

于 2012-10-22T08:51:29.503 に答える
0

モデルにスコープを作成します。これが最も推奨される方法です。コントローラは、結果を取得する方法を知る必要はありません。モデルに必要なものを尋ねるだけです!

スコープ内で、希望どおりに設計します。詳細については、ドキュメントを確認してください。

映画モデルファイルに、次のように入力します。

scope :ordered, order("id ASC")

次に、コントローラーインデックスで:

@movies = Movie.ordered

これにより、並べ替えられた映画コレクションが提供されます

于 2012-10-22T08:58:34.980 に答える