如何从控制器渲染不同的视图

时间:2012-06-29 12:09:41

标签: ruby-on-rails

排序的noob-rails问题;):

我的控制器中有2个操作 - 索引拥有。 在 index 中,我列出了所有帖子,拥有仅生成已登录用户的帖子。控制器非常相似,但视图是相同的,我认为可以在这两个控制器之间共享。

在自己的控制器中我放了这样的东西:

respond_to do |format|
  format.html { render :action => "index" }
  format.json { render json: @ads }
end

并添加到路线:

match "/ads/own" => 'ads#own', :via => :get

有没有更好的解决方案呢?

1 个答案:

答案 0 :(得分:4)

你可以这样做:

def index
  ....
end

def own
  ....
  render :index    
end

Everything(所有变量)将直接传递给自己的索引视图。如果你想要:json组件,那么添加:

class SomeController < ApplicationController
  respond_to :html, :json

并将'respond_with @posts'作为每个操作中的最后一项。