我正在寻找正确的方法来执行以下操作。
我有一个控制器动作'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
......或......完全不同的东西?
你告诉我了吗?答案 0 :(得分:1)
我会将视图称为params [:view],就像这样:
def show
@photo = Photo.find params[:photo_id]
render params[:view].to_sym
end
只要您拥有涵盖所有可能参数的视图文件,就可以使用。