2011-08-08 120 views
0

我使用嵌套資源在我的Rails應用程序,像這樣:Rails應用繼承和嵌套資源

resources :devices, :except => [:edit] do 
    resources :services, :only => [:index, :destroy], :controller => "devices/services" 
    resources :alerts, :only => [:index, :destroy], :controller => "devices/alerts" 
end 

現在我想做的是有設備/顯示視圖是「佈局」爲嵌套資源和 我定義任何其他子行動。

所以說,我的設備/ show.html.erb看起來是這樣的:

<div class="resource"> 
    <div class="sidebar"> 
    <ul> 
     <li><%= active_link_to "General", @device, :active => :exclusive %></li> 
     <li><%= active_link_to "Services", device_services_path(@device) %></li> 
     <li><%= active_link_to "Alerts", device_alerts_path(@device) %></li> 
     etc.. 
    </ul> 
    </div> 
    <div class="data"> 
    <%= render "shared/flash_messages" %> 
    <%= yield %> 
    </div> 
</div> 

那麼,如何去呈現子視圖(設備/服務/ index.html.erb,設備/警報/index.html.erb),其中(假設的)產量是在#DATA DIV?

+0

出了什麼問題,你有什麼? – jamesc

+0

產量僅適用於佈局AFAIK。我想這和產量不會呈現什麼... –

+1

所以你的問題是關於如何使用收益呢?在這種情況下,你應該看看使用content_for http://guides.rubyonrails.org/layouts_and_rendering.html#using-content_for – jamesc

回答

0

好像你的問題是絕對無關,與繼承和嵌套資源。

如果你想知道如何使用產量命令我張貼在我對你的問題的評論的鏈接,但這裏有一個例子專門爲你的代碼

<div class="resource"> 
    <div class="sidebar"> 
    <ul> 
     <li><%= active_link_to "General", @device, :active => :exclusive %></li> 
     <li><%= active_link_to "Services", device_services_path(@device) %></li> 
     <li><%= active_link_to "Alerts", device_alerts_path(@device) %></li> 
     etc.. 
    </ul> 
    </div> 
    <div class="data"> 
    <%= render "shared/flash_messages" %> 
    <%= yield :nested_resources %> 
    </div> 
</div> 

那麼無論你要放置在任何事情div將其封裝在content_for:nested_resources塊中,例如 在某處視圖模板

<% content_for :nested_resources do %> 
    <!-- whatever code you would normally have in your view template --> 
<% end %>