簡體   English   中英

Rails 3:使用render動作將實例變量從控制器傳遞到不同的視圖

[英]Rails 3: Passing an instance variable from a controller to a different view using a render action

我有一個控制器(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,所以我想我要么缺少一些明顯的東西,要么就是錯誤的方式。 有任何想法嗎?

@road是控制器的實例變量。 來自被調用控制器方法的所有實例變量都可在被調用視圖中使用。

只需在視圖中執行<%= @road.inspect %> ,您將看到它打印模型實例的屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM