将2个操作定向到同一视图,Ruby on Rails

时间:2012-11-10 13:21:58

标签: ruby-on-rails

我设置了两个操作来从数据库中获取特定项目,如下所示:

的routes.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 个答案:

答案 0 :(得分:3)

只需在您的操作中添加render "documents",并将您的视图命名为documents.html.erb

答案 1 :(得分:1)

在每个方法结束时添加:

render "documents/index"

然后创建视图app/views/documents/index.html.erb,你就会好起来。

答案 2 :(得分:1)

使用render,您可以指定要渲染的部分。阅读更多api doc

答案 3 :(得分:0)

供我自己参考 - 另一种方式:

respond_to do |format|
  format.text {render :template=>"app/views/documents/index.html.erb" }
end