2011-07-18 7 views
2

リモートでリンクされている編集操作が必要なディスカッションコントローラがあり、AJAX呼び出しでページの一部をレンダリングすることができますJquery&Rails 3:Link_toリモート操作を編集する

私の問題は、コントローラとすべてのファイル(必要と思われる)にアクションを設定していることです。しかし、ディスカッションの表示ページのリンクは、ブラウザをコントローラのアクションとそれに対応するedit.js.erbファイルにリンクするのではなく、新しいページを表示することができます。

ディスカッションコントローラのコードは次のとおりです。

私は今のところ、ちょうど警告で満たされている(js.erbファイルedit.js.erbを呼ぶよう望んでいるだろう
class DiscussionsController < ApplicationController 
    include DiscussionsHelper 

    def create 
    ... 
    end 

    def show 
     ... 
    end 

    def edit 
    respond_to do | format | 
     format.js 
    end 
    end 
end 

- これは適切を通じてリンクたら私はjqueryのコードでそれを埋めるつもり部分的な編集をレンダリングするために、私は希望:私はショーのページに入れている

alert("hello"); 

のlink_toすることです:私が言ったように

<div class="discussion_overview"> 
    <h1><%= @discussion.title %></h1> 
    <div class="edit_disc"> 
<%= link_to "Edit", :url => {:action => "edit", :id => @discussion}, :remote => true %> 
    </div><br> 

が、私はこれはedit.jsを呼ぶだろうと思いました.erbファイルを作成します。適切なコード。ただし、link_toリンクではなく:

http://localhost:3000/discussions/54?remote=true&url[action]=edit&url[id]=54 

私が間違っていたことについてのアイデアはありますか? URLをドロップ

UPDATE => {}になるために:

http://localhost:3000/discussions/54/edit?remote=true 

ではなくにAJAX呼び出しを行う:

<%= link_to "Edit", :action => "edit", :id => @discussion, :remote => true %> 

ではなく、単にへのリダイレクトを変更し、解決策を解決しません編集アクション..

答えて

1

これは単なるlink_to行の構文の問題です。

<%= link_to "Edit", {:action => "edit", :id => @discussion}, :remote => true %> 

link_to()メソッドの2番目のパラメータはurlです。あなたのURLハッシュが別のハッシュの中にある場合は、:url => {}を前に付けることにより、 :url =>を削除してください。 :)

+0

あなたのご意見ありがとうございます。私はこれが当てはまるとは思わない - 私は:url => {}を削除したが、ここではリダイレクトが持続する。この場合、http:// localhost:3000/discussions/54/edit?remote = true、isnどんな考え? – jay

+0

Rails 3を使用していますか? – tybro0103

+0

はい - Rails 3.0.9 – jay