0

2 列のレイアウトを作成しようとしています。左側の列はナビゲーション、右側の列はコンテンツです。

ページ全体を再読み込みせずに、対応するナビゲーションが選択されているときに、右の div に異なる時間に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>

ルート ファイル:

resources :items
4

2 に答える 2

1

「しかし、別のページの読み込みを回避しようとしています」とは、完全な新しいページではなく、ajax によってビューを読み込みたいということですか? その場合、リンクは である必要があり、ビューは対応するビューのコンテンツで をremote_link更新する必要があります。div id='right'

リンクには:remote=>trueオプションを使用する必要があります。詳細をご覧ください

そして、ビューは 内のコンテンツを更新するために応答する必要があります<div id="right">

ここに別のリンクがあり、さらに洞察が得られます。

于 2012-09-14T05:52:16.373 に答える
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 の優れたチュートリアルであるRails チュートリアルをお勧めします。その後、Codeschoolにアクセスして、さらに学習してください。

于 2012-09-14T05:47:47.567 に答える