2017-08-16 71 views
10

我有我已經轉換大多交給軌5黑客RJS行爲5

一個問題一個老軌2.x的項目是一些使用RJS,所以它看起來像我的行爲:

if request.xhr? 
    render :action => 'new_user' and return 
end 

的new_user.js.rjs看起來像:

page.call "User.create", render(:partial => 'new_user'), {:userId => @user.id} 

綜觀鉻的響應,我可以看到它是返回:

User.create('<tr><td>....</td></tr>', {"userId" : 123}); 

我只需要支持page.call類型的RJS調用,如何讓這個工作在rails 5中是一個簡單的「黑客」?

我不想修改所有的JavaScript代碼,我只需要基本上有一個JavaScript塊,我通過JS代碼在我的查看頁面右?

+0

所以你的意思是你不能在rails 5中使用rjs? –

+0

@AkiraSuzuki是的,我相信它被拿出了軌道3.x – Blankman

回答

2

我結束了回國這樣的JSON響應我的看法頁:

some_partial_html = render_to_string(:partial => 'something') 

response = { 
    "html": some_partial_html, 
    "a" : 1 
}.to_json 
render json: response 

然後我認爲我使用JSON響應值作爲arguements到PERF JavaScript對象Orms我需要的功能。

2

嘗試呈現爲一個字符串的響應:

if request.xhr? 
    render render_to_string partial: 'new_user', 
    locals: { userId: @user.id }, 
    layout: false 
end 

或者嘗試使用格式處理程序來代替:

respond_to do |format| 
    format.rjs do 
    render render_to_string partial: 'new_user', 
     locals: { userId: @user.id }, 
     layout: false 
    end 
end