我有一个控制器(RoadsController)更新操作,我用它来调用不同的视图(views / road_surface / crop.html.erb)。为了满足其他项目要求,我需要将此文件保存在不同的视图中:
def update
@road = Road.find params[:id]
if @road.update_attributes params[:road]
if params[:road][:road_surface].present?
render "road_surface/crop" #I'd like to pass @road to my road_surface view here
else
redirect_to road_path @road.id
end
else
render : action => 'edit'
end
end
我需要将@road实例变量传递给road_surface视图。我已经阅读了关于渲染的这条教学:http://guides.rubyonrails.org/layouts_and_rendering.html但找不到我要找的东西。这看起来很简单,但我绝对是一个Rails noob,所以我想我要么缺少一些明显的东西,要么就是错误的方式。有什么想法吗?
答案 0 :(得分:2)
@road是控制器的实例变量。调用的控制器方法中的所有实例变量都可以在被调用的视图中使用。
只需在视图中执行<%= @road.inspect %>
,您就会看到它打印模型实例的属性。