0

我正在嘗試製作兩列布局。左側的列是導航,右側的列是內容。新手 - 導軌視圖內查看

是否有顯示方式show.html.erbedit.html.erb,並且new.html.erb在正確的格不同的時間,當選擇相應的導航,無需重新加載整個頁面?

我知道我可以使用左側div的部分,並呈現新頁面,但我想避免爲每個視圖單獨加載頁面。

項目控制器:

def index 
    @item = item.find(:all, :order => "id DESC") 
end 

def new 
    @item = item.new 
end 

def create 
    @item = item.new(params[:item]) 

    if @item.save 
     redirect_to root_path 
    else 
     render "new" 
    end 
end 

def edit 
    @item = item.find(params[:id]) 
end 

def update 
    @item = item.find(params[:id]) 

    if @item.update_attributes(params[:item]) 
     redirect_to root_path 
    else 
     render "index" 
    end 
end 

HTML:

<div id="left" "> 
    <p id=link_to "Current_Item", item_path %></p> 
    <p id=Link_to "Add_Item", new_item_path %></p> 
    <p id=Link_to "Edit_Item", edit_item_path %></p> 
</div> 

<div id="right"> 

</div> 

routes文件:

resources :items 

回答

0

我會建議修改app/views/layouts/application.html.erb然後把

<div id="left"> 
    <p><%= link_to "Current_Item", item_path %></p> 
    <p><%= Link_to "Add_Item", new_item_path %></p> 
    <p><%= Link_to "Edit_Item", edit_item_path %></p> 
</div> 


<div id="right"> 
    <%= yield %> 
</div> 

。然後,show.html.erb, edit.html.erb, and new.html.erb視圖應該會自動呈現給每個適當的操作,並被調用到頁面的正確部分。

另外我建議Rails tutorial這是一個很好的導軌教程。然後去Codeschool學習更多。

+0

感謝您的幫助。我會看看你提供的額外資源。 –

1

「但我試圖避免有一個單獨的頁面加載」意味着你想通過ajax而不是一個完整的新頁面加載你的意見?如果是這樣,那麼你的鏈接應該是remote_link,你的意見應該更新div id='right'與相應的視圖的內容。

您的鏈接應該使用:remote=>true選項。 See the details

而你的觀點應該回應更新<div id="right">內的內容。

Another link here有一些更多的見解。

+0

謝謝。這是非常棒的信息。 –