铁路建议4视图渲染

时间:2016-07-03 17:45:38

标签: ruby-on-rails ruby

我正在寻找正确的方法来执行以下操作。

我有一个控制器动作'show',它实际上只获得了一个数据库条目:

def show 
  @photo = Photo.find params[:photo_id]
end

我有四个不同的视图都使用相同的控制器操作。我该如何实现呢?

我想到了两种方法:

1)使用url参数:

def show 
  @photo = Photo.find params[:photo_id]

  case params[:view]
  when 'view1'
    render ...view1
  when 'view2'
    render ...view2
  when 'view3'
    render ...view3
  when 'view4'
    render ...view4

end

...或...

2)使用respond_to

def show 
  @photo = Photo.find params[:photo_id]

  respond_to |view|
    view.one {render ...view1}
    view.two {render ...view2}
    view.three {render ...view3}
    view.four {render ...view4}

  end

end

......或......完全不同的东西?

你告诉我了吗?

1 个答案:

答案 0 :(得分:1)

我会将视图称为params [:view],就像这样:

def show 
  @photo = Photo.find params[:photo_id]
  render params[:view].to_sym
end

只要您拥有涵盖所有可能参数的视图文件,就可以使用。