Respond_to混乱

我有一个编辑/更新表单,我通过form_for设置:

       

在有效数据的情况下,我希望相应的更新操作保存更改,并将用户重定向到他来自的位置。 在这种情况下不需要JS。 如果数据无效,我希望JS处理这种情况。 我把控制器设置成这样:

 def update @user = current_user @vocab = @user.vocabs.find(params[:id]) if @vocab.update_attributes(vocab_params) flash[:notice] = "Vocab updated!" respond_to do |format| format.js { redirect_back_or(home_user_path(@user)) } end else flash[:error] = "Vocab invalid!" respond_to do |format| format.html { render 'edit' } format.js { render file: "vocabs/update.js" } end end end 

我遇到的问题是,在有效数据的情况下,保存的URL(study_setup)正在被处理为JS,这可以防止端被加载。 我在哪里告诉Rails使用JS进行此重定向?

 Started PATCH "/users/1/vocabs/445" for 127.0.0.1 at 2015-02-19 18:03:16 +0100 Processing by VocabsController#update as JS Parameters: {"utf8"=>"✓", "vocab"=>{"front"=>"kjhkkhsdsf1", "back"=>"jhgjhklj1"}, "commit"=>"Save", "user_id"=>"1", "id"=>"445"} User Load (0.4ms) SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1 User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", 1]] Vocab Load (0.2ms) SELECT "vocabs".* FROM "vocabs" WHERE "vocabs"."user_id" = ? AND "vocabs"."id" = ? ORDER BY created_at DESC LIMIT 1 [["user_id", 1], ["id", 445]] (0.1ms) begin transaction Vocab Exists (0.3ms) SELECT 1 AS one FROM "vocabs" WHERE (LOWER("vocabs"."front") = LOWER('kjhkkhsdsf1') AND "vocabs"."id" != 445 AND "vocabs"."back" = 'jhgjhklj1' AND "vocabs"."user_id" = 1) LIMIT 1 SQL (0.3ms) UPDATE "vocabs" SET "back" = ?, "updated_at" = ? WHERE "vocabs"."id" = 445 [["back", "jhgjhklj1"], ["updated_at", "2015-02-19 17:03:16.494941"]] (2.3ms) commit transaction Redirected to http://localhost:3000/users/1/study_setup Completed 302 Found in 17ms (ActiveRecord: 3.9ms) Started GET "/users/1/study_setup" for 127.0.0.1 at 2015-02-19 18:03:16 +0100 Processing by UsersController#study_setup as JS Parameters: {"id"=>"1"} User Load (0.6ms) SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1 User Load (0.1ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", 1]] (0.1ms) begin transaction User Exists (0.3ms) SELECT 1 AS one FROM "users" WHERE (LOWER("users"."email") = LOWER('example@railstutorial.org') AND "users"."id" != 1) LIMIT 1 (0.1ms) commit transaction Tag Load (0.2ms) SELECT "tags".* FROM "tags" WHERE "tags"."user_id" = ? AND "tags"."active" = 't' [["user_id", 1]] Rendered users/_filter_form.html.erb (2.6ms) (0.2ms) SELECT COUNT(*) FROM "vocabs" WHERE "vocabs"."user_id" = ? [["user_id", 1]] Vocab Load (0.2ms) SELECT "vocabs".* FROM "vocabs" WHERE "vocabs"."user_id" = ? ORDER BY created_at DESC [["user_id", 1]] Rendered users/_vocab_list_for_selection.html.erb (2.1ms) Rendered users/study_setup.html.erb within layouts/application (8.9ms) Rendered layouts/_shim.html.erb (0.1ms) Rendered layouts/_header.html.erb (1.1ms) Completed 200 OK in 237ms (Views: 227.5ms | ActiveRecord: 1.7ms) 

remote: true告诉Rails向服务器发送ajax请求。