2011-11-19 77 views
1

我有一個索引頁面,網址爲www.exa,com/users/jude。在那個頁面我想提交一個從彈出對話框出現的彈出窗口的動作send_message,每當我提交,通過Ajax的數據被存儲,但不是頁面得到反映。jQuery對話框在rails 3中與ajax

我控制器

def send_message 
    @message = current_user.messages.build(params[:message]) 
    @message.receiver_id = @user.id 
    respond_to do |format| 
     if @message.save 
     format.html {redirect_to user_url(current_user)} 
     format.js 
     end 
    end 
    end 

查看文件

%div.jqmWindow#dialog 
    %div.dialog_content 
-form_for Message.new,:url=>'users_message_path',:remote=>true do |f| 
     =hidden_field_tag :id,@user.login 
     =f.text_area 'content',:rows => 10, :cols => 25 
     =f.submit 'Send' 

我js.erb

$('#dialog').html("hello") 

問題是AJAX是requestuing動作/用戶/ send_message而不是/用戶/裘德

回答

0

W每當我們使用haml作爲標記,那麼我們所有的文件都應該有.html.haml命名約定,因爲帶有.html.haml擴展名的視圖會自動使用Haml。

現在format.js文件中,我們可以在我們的更新或插入的數據顯示

$( '#對話')。HTML(」 <%= escape_javascript「您已成功發送郵件到#{@消息.receiver_id.login}「%>」)

現在通過ajax調用插入數據