UJSとRails3を使用してビューを単純にレンダリングしようとしていますが、実際には機能していません。私は多くのチュートリアルを読みましたが、これを理解できないようです。コードスニペットは次のとおりです。
index.js.erb
"<%= render user_path(@this_user) %>"
index.html
<%= form_tag users_path, :method => :get, :remote => true do %>
<%= submit_tag "Test", :name => nil, :class => "btn" %>
<% end %>
users_controller.rb
def index
@users = User.all
@this_user = User.find(1)
respond_to do |format|
format.html # index.html.erb
format.js
format.json { render json: @users }
end
end
「テスト」をクリックするたびに、次の出力が表示されます。
2012-10-1911:31:49-0700に127.0.0.1のGET"/users?utf8 =%E2%9C%93"を開始しました。JSパラメーターとしてUsersController#indexによる処理:{"utf8"=>"✓" }ユーザー負荷(0.4ms)SELECT"users"。*FROM "users"
ユーザー負荷(0.2ms)SELECT"users"。*FROM "users"WHERE"users"。"id"= $ 1 LIMIT 1 [["id" 、1]]レンダリングされたusers / index.js.erb(1.8ms)は6msで500の内部サーバーエラーを完了しましたActionView :: Template :: Error(部分名(/ users / 1)は有効なRuby識別子ではありません。部分名が文字またはアンダースコアで始まり、その後に文字、数字、またはアンダースコアの任意の組み合わせが続くことを確認してください。 ):1: "<%= render user_path(@this_user)%>" app / views / users / index.js.erb:1:in index '
_app_views_users_index_js_erb__2145063269526192522_70203075823780'
app/controllers/users_controller.rb:9:in
パーシャルを探しているようです。ただし、ユーザーコントローラーの「表示」アクションに関連付けられたビューを実行するだけです。つまり、まったく新しいページです。
私は何が間違っているのですか?最初のステップは完全に新しいビューをレンダリングすることですが、これを理解した後、「表示」ページ内に部分的なビューをレンダリングする予定です。
助けてくれてありがとう!