2015-04-17 32 views
0

我想使用Ajax調用顯示窗體,但它不起作用。 請檢查我的代碼如下。使用Ajax調用後窗體不顯示

視圖/用戶/ index.html.erb

<h1>Enter your data<h1> 
    <%= link_to 'New Task', users_new_path, remote: true %> 
    <div id="task-form" style="display:none;"></div> 

用戶/ new.html.erb

<%= render 'form' %> 

用戶/ new.js.erb

$('#task-form').html("<%= j (render 'form') %>"); 
$('#task-form').slideDown(350); 

用戶/ _form.html.erb

<%= simple_form_for :user, remote: true do |f| %> 
    <%= f.input :name %> 
    <%= f.input :content %> 
    <%= f.button :submit %> 
<% end %> 

控制器/ users_controller.rb

class UsersController < ApplicationController 
    def index 
    @user=User.all 
    respond_to do |format| 
    format.html 
    format.js 
    end 
    end 
    def new 
     @user=User.new 
     respond_to do |format| 
      format.html 
      format.js 
     end 
    end 
    def create 

    end 
end 

的routes.rb

Ajax3::Application.routes.draw do 
    root :to => "users#index" 
    get "users/new" => "users#new" 
    post "users/create" => "users#create" 
end 

在我的瀏覽器控制檯,依次單擊鏈接我得到下面的錯誤後。

錯誤:

GET http://localhost:3000/users/new 500 (Internal Server Error) 
    jQuery.ajaxTransport.send @ jquery.js?body=1:9632 
jQuery.extend.ajax @ jquery.js?body=1:9177 
$.rails.rails.ajax @ jquery_ujs.js?body=1:84 
$.rails.rails.handleRemote @ jquery_ujs.js?body=1:164 
(anonymous function) @ jquery_ujs.js?body=1:342 
jQuery.event.dispatch @ jquery.js?body=1:4642 
jQuery.event.add.elemData.handle @ jquery.js?body=1:4310 

我使用的軌道版本3.2.19。

+0

那你在瀏覽器中控制檯中看到?你可以發佈,也可以發佈你的日誌? – Mandeep

+0

Mandeep,我越來越像這樣無法加載資源:服務器響應的狀態爲500(內部服務器錯誤) –

+0

啊需要全部信息,所以你可以編輯你的問題,併發布完整的日誌,當你點擊該鏈接,還有什麼你在瀏覽器控制檯中看到? – Mandeep

回答

0

更新代碼:

1) Path is wrong "users_new_path" to "new_users_path"

的意見/用戶/ index.html.erb

<h1>Enter your data<h1> 
    <%= link_to 'New Task', new_users_path, remote: true %> 
    <div id="task-form" style="display:none;"></div> 
2) Update users/new.js.erb 
$('#task-form').html("<%= escape_javascript(render("form")) %>"); 
$('#task-form').slideDown(350); 

3) Update:controller/users_controller.rb

class UsersController < ApplicationController 
    def new 
     @user=User.new 
     respond_to do |format| 
      format.html 
      format.json 
     end 
    end 
    def create 

    end 
end