【发布时间】:2012-05-02 21:45:56
【问题描述】:
在我们的 rails 3.1 应用程序中输入 log 时,使用 ajax 来渲染下面的输入屏幕。这是日志的链接:
<%= link_to 'Log', new_part_out_log_path(@part, :format => :js), :remote => true, :id => 'new_log_link' %>
new.js.erb 是这样的:
$("<%= escape_javascript render(:file => 'out_logs/new.html.erb') %>").insertAfter('#new_log_link');
$('#new_log_link').hide();
$('#close').hide();
问题是,在单击“日志”后,呈现了 out_logs/new.html.erb 的 2 个相同视图,而不是一个视图。我们的代码可能有什么问题?非常感谢。
【问题讨论】:
-
你使用
respond_to吗?也许 rails 以某种方式决定呈现 javascript 和 HTML 答案。你怎么知道它渲染了 2 次?你能发布更多控制器代码吗? -
我们不使用reponse_to。
-
似乎突然之间每个 ajax 开始呈现两个相同的视图。它似乎不仅仅与一个控制器有关。
-
但是你怎么知道我渲染了2次呢?您是在日志中看到它还是发生了什么奇怪的事情?
-
点击后会出现两个相同的视图。这些视图由 new.js.erb 生成。我们认为 new.js.erb 必须被渲染两次。
标签: ruby-on-rails ajax ruby-on-rails-3.1