2014-03-26 66 views
1

我有一個充滿產品(產品控制器)的索引頁面,我可以通過點擊'訂購'按鈕來創建訂單,這會導致用戶將訂單控制器的'新'操作與產品ID作爲參數一起傳遞。如何使用Rails和Ajax加載div?

def new 
    @order = Order.new 
    @product = Product.find(params[:product]) 
    end 

在那裏,用戶可以選擇他想要的數量,最後創建訂單。

但是,當點擊'訂單'時,我想要彈出一個模式窗口,使用'新訂單'頁面中的表單。所以,我已經添加了數據的遠程屬性我的命令按鈕:

<%= link_to('Order', new_order_path(product: product), class: "btn btn-order", remote: true) %> 

更新你的控制器:

def new 
    @order = Order.new 
    @product = Product.find(params[:product]) 

    respond_to do |format| 
     format.html 
     format.js 
    end 
    end 

並創建了new.js.erb文件,打開我的模態窗口

function openModal = somecode... 

但是,如何獲取超出鏈接的FORM的HTML?我不想渲染偏色,我只想將表單代碼粘貼到我的模態窗口的.html('...')中!

謝謝!

回答

0

您可以使用jQuery通過使其作爲一個部分在new.js.erb文件像這樣添加的形式向DOM的內容:

$('#modal_id').html('<%= escape_javascript(render(partial: "path/to/partial", object: @instance_variable)) %>'); 

編輯:在第二讀你的問題,我看到你提到你不想呈現部分內容,因此你可以直接在你的new視圖中獲得表單代碼;像這樣:

var form_html = '<form>...</form>'; 
$('#modal_id').html(form_html); 

我希望這有助於!