Ruby on rails 新手-视图中的Rails视图

Ruby on rails 新手-视图中的Rails视图,ruby-on-rails,ruby-on-rails-3,model-view-controller,view,controller,Ruby On Rails,Ruby On Rails 3,Model View Controller,View,Controller,我正在尝试做一个两列的布局。左侧的列是导航,右侧的列是内容 当选择相应的导航时,是否有办法在右div的不同时间显示show.html.erb、edit.html.erb和new.html.erb,而不重新加载整个页面 我知道我可以对左div使用partial,并呈现新页面,但我希望避免为每个视图单独加载页面 项目控制员: def index @item = item.find(:all, :order => "id DESC") end def new @item = i

我正在尝试做一个两列的布局。左侧的列是导航,右侧的列是内容

当选择相应的导航时,是否有办法在右div的不同时间显示
show.html.erb
edit.html.erb
new.html.erb
,而不重新加载整个页面

我知道我可以对左div使用partial,并呈现新页面,但我希望避免为每个视图单独加载页面

项目控制员:

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:


我建议修改
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和new.html.erb
视图

我还推荐这是一个关于rails的很好的教程。然后继续了解更多信息。

“但我正试图避免单独加载页面”意味着您希望通过ajax而不是全新页面加载视图?如果是这样,那么您的链接应该是
远程链接
,并且您的视图应该使用相应视图的内容更新
div id='right'

您的链接应该使用
:remote=>true
选项

您的视图应该响应以更新
中的内容


有更多的见解。

谢谢你的帮助。我也会看看你提供的额外资源。谢谢。这是非常棒的信息。
resources :items
<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>