我有一个页面poweroutput.html.erb
,显示客户太阳能系统在特定日期的输出功率。当他们输入不同的日期时,我希望他们看到不同的输出,但无需重新加载页面。在我的页面上,我有一些javascript和一个表单(用于提交用户希望看到电源输出的日期),如下所示:
<head>
<script type="text/javascript">
<%= render "pages/poweroutputscript" %> # renders a partial containing all my js
</script>
</head>
# a form is here on this page too
我的页面控制器操作目前如下:
def poweroutput
# some code
if request.xhr?
@date = params[:dt] # dt is posted when form is submitted
else
@date = Time.now.getlocal.strftime("%d.%m.%Y")
end
respond_to do |format|
format.html
format.js { render :action "pages/poweroutput.js.erb" }
end
end
并且poweroutput.js.erb如下:
$("script").replaceWith("<script><%= escape_javascript render "pages/poweroutputscript" %></script>");
我的页面助手中有一个名为get_eac_day
的方法,在我的_poweroutputscript.html.erb中调用&lt;%= get_eac_day%&gt;。首次加载页面时,它工作正常。但由于某些原因,当部分在javascript请求上呈现时,get_eac_day返回nil。好像部分无法突然访问我的Pages Helper方法。我可以看到它可以访问我的控制器动作中定义的变量(如@date)。我可能会遗漏一些特殊的包含声明吗?还是别的什么?
答案 0 :(得分:0)
也许您可以将get_eac_day
的返回值传递给您的部分,如此:
<%= render "pages/poweroutputscript", :ged => get_eac_day %>
然后像这样编辑你的_poweroutputscript.html.erb:
<%= ged %>