更新:私の質問は答えられましたが、私がこれをどのように行ったかを正確に詳述したブログ投稿を書きました:http: //lathamcity.com/posts/ajaxInRails.html
Rubyオブジェクトに基づいたもののリストを表示するページがあります。私の目標は、Ajax呼び出しを行って新しいRubyオブジェクトを取得し、それに基づいてリストを更新することです。
これを行う方法はパーシャルを使用することだと思いました。リスト全体を、コード内のRailsインスタンス変数を含む部分ファイルにします。次に、Ajax呼び出しで、対応するインスタンス変数を新しいリストに設定し、パーシャルを再レンダリングします。
これが最終目標ですが、今は、インスタンス変数を文字列に設定してから文字列を表示するという、非常に基本的なバージョンを実行しようとしています。
だから私のdivでは、私は持っています:
<% form_tag :action => :go , :method => :get, :remote => true do %>
<%= submit_tag "Go" %>
<% end %>
<div id="test"><%= render(:partial => 'test') %></div>
(私のコントローラーの名前)フォルダーに_test.erbファイルがあり、views/interface
その内容は次の行のみです。
<%= @test %>
そして、私のコントローラーでは、
def go
@test = "Hello You"
render :update do |page|
page.replace_html "test", :partial => "test"
end
end
これを実行すると、次のようになります。 Missing template interface/update, application/update
よくわかりませんがrender :update
、Googleの例で見つけました。
この問題を引き起こしている私は何を間違っているのですか、そしてどうすればそれを修正できますか?私はこれを正しい方法で行っていますか、それともそれを行うためのより良い方法がありますか?