2

次のように、データベースから特定のアイテムを取得するために 2 つのアクションを設定しています。

ルート.rb

match 'bibles' => 'documents#bibles'
match 'postcards' => 'documents#postcards'

documents_controller.rb

 def bibles
   @pagetitle = "Browse all Bibles"
   @documents = Document.where(:document_type_id => 1).paginate(:page =>params[:page], :order =>'id desc', :per_page =>50)
 end

def postcards
  @pagetitle = "Browse all Postcards"
  @documents = Document.where(:document_type_id => 3).paginate(:page =>params[:page], :order =>'id desc', :per_page =>50)
end

これらは特定のビューをレンダリングします。どちらも同じコードで構成されておりbibles.html.erbpostcards.html.erb. これが同じビューを指す必要があります。これを行うルートに追加するパラメーターはありますか、それとも私のルーティングはこの目的に対して正しくありませんか?

4

4 に答える 4

3

render "documents"アクションに追加して、ビューに名前を付けるだけ documents.html.erbです。

于 2012-11-10T13:26:32.997 に答える
2

各メソッドの最後に次を追加します。

render "documents/index"

次に、ビューapp/views/documents/index.html.erbを作成すると、準備完了です。

于 2012-11-10T13:28:53.547 に答える
1

を使用renderすると、レンダリングするパーシャルを指定できます。API ドキュメントで詳細を読む

于 2012-11-10T13:35:59.810 に答える
0

私自身の参考のために - 別の方法:

respond_to do |format|
  format.text {render :template=>"app/views/documents/index.html.erb" }
end
于 2012-11-10T16:20:48.723 に答える