2

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

路线.rb

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

文档控制器.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.erb并且postcards.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 回答