0

Premisse:我对javaScript的了解甚少。Rails资产和JavaScript集成

在Rails布局,下面的脚本功能:

<script> 
    $(function() { 
    $("#date_available_dal").datepicker({dateFormat: 'yy-mm-dd', showButtonPanel: true}); 
    $("#date_available_al").datepicker({dateFormat: 'yy-mm-dd', showButtonPanel: true}); 
    }); 
</script> 

但是,如果我把相同的代码,而剥离开闭脚本标记,在.js文件中的资产/ JavaScript的文件中,浏览器加载文件,但[如Curly所说]没有任何反应。

我在很多场合都遇到过这个问题&它妨碍我正确使用管道。什么是轨道在后台做,可能会改变这个脚本的行为?

在同一个思路,如果我是给定的应用方法

def set_locale 
    if user_signed_in? 
     I18n.locale = current_user.idioma.code.downcase 
    else 
     I18n.locale = params[:locale] || I18n.default_locale 
    end 
    end 

的区域追加到

datepicker({dateFormat: 'yy-mm-dd', regional[ #{set_locale} ] 

怎么会变成这样代码的燃料电池堆之间如何处理?

更新

目前在开发模式下,浏览器接收文件有以下:

$(function() { 
$("#date_available_dal").datepicker({dateFormat: 'yy-mm-dd', minDate: 0, numberOfMonths: 3, showButtonPanel: true}); 
$("#date_available_al").datepicker({dateFormat: 'yy-mm-dd', minDate: 1, numberOfMonths: 3, showButtonPanel: true}); 
    }); 
+0

坚持一次一个问题。关于第一个问题,您发布的代码没有明显的错误,并且无法说明资产管道在没有看到输出的情况下做了什么。 –

+0

更新了包含代码的问题。 (是的,关于多个问题的理解,我的假设是它们以某种方式链接) – Jerome

+0

您能在浏览器控制台中看到任何脚本错误吗?这些文件中的唯一四行是否传送给浏览器?如何以及何时加载jQuery? –

回答

0

答到的主要问题:约瑟夫已确定的问题。在这种情况下,JavaScript顺序是要解决的问题。

我将添加第二个观察:require_tree。可能会非常棘手(按字母顺序查看文件),声明的内容等等。使用异构JS的应用程序越大,使用它的人越多,通常会声明个别情况下真正需要的东西。

至于第二个问题,鉴于这些页面已编入索引,我会再次适当的练习并发布答案。

jQuery的日期选择器有自己的I18n文件集,它们定义为datepicker-de.jsdownload the necessary files form github并在需要时保存。我定义了用户在现场idioma_id语言,以其伊多马模型,允许我说明

<% if user_signed_in? %> 
    <%= javascript_include_tag ("datepicker-" + "#{current_user.idioma.code.downcase}") %> 
<% elsif params[:locale].present? %> 
    <%= javascript_include_tag ("datepicker-" + "#{params[:locale]}") %> 
<% else %> 
<% end %> 

最后else语句是应用,如果你的默认语言环境是连接的快捷方式。 datepicker的默认值是en,因此已经加载。