0

我有一个控制器 (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 菜鸟,所以我认为我要么遗漏了一些明显的东西,要么以错误的方式解决这个问题。有任何想法吗?

4

1 回答 1

2

@road 是控制器的实例变量。来自被调用控制器方法的所有实例变量都在被调用视图中可用。

只需<%= @road.inspect %>在视图中执行,您将看到它打印模型实例的属性。

于 2013-08-26T20:54:05.693 回答