我的onclick事件有效,但是当它显示部分时:
仅显示文字:
<%= escape_javascript(render(:partial => payment)) %>
我希望它能够获取parial并显示它
这是我的代码:
$(".payment").append("<%= escape_javascript(render(:partial => payment)) %>");
尝试了&#34;&#34;和&#39;&#39;付款
此
的完整jquery代码$(document).ready ->
$('.plans').change ->
$(".payment").append("<%= escape_javascript(render(:partial => 'payment')) %>");
编辑:
如果有人在将来看这个,因为我使用了设计,这对我有用:
devise_scope :user do
get 'registrations/toggle_partial' => "registrations#toggle_partial"
end
将toggle_partial.js文件放入
views/devise/registrations
尼克斯放在那里的其他一切都很棒......
还要记住&#39;&#39;部分名称周围
答案 0 :(得分:2)
基于你上面的'完整jquery'代码,我猜你在coffeescript文件中有这个,它无法访问render方法。
你将不得不设置一条路线来击中呈现JS的控制器动作,如下所示:
routes.rb中:
get 'controller_name/toggle_partial' => "controller_name#toggle_partial"
在那个控制器中:
def toggle_partial
respond_to do |format|
format.js
end
在views / controller_name中添加一个名为toggle_partial.js的文件,其中包含以下内容:
$(".payment").append("<%= escape_javascript(render(:partial => payment)) %>");
然后在您的coffeescript文件中执行以下操作:
$('.plans').change ->
$.ajax(
type: 'GET'
url: '/controller_name/toggle_partial'
success: ( data, status, xhr ) ->
)
很抱歉,如果coffeescript示例中的缩进已关闭。最重要的是,您无权访问coffeescript文件中的渲染,因此您必须进行解决。 希望这会有所帮助。