Jquery在Rails 3.2.8中不起作用

时间:2012-10-07 22:39:22

标签: jquery ruby-on-rails ruby-on-rails-3

我的名字是Pamela,我是这个版本的rails的新手,我正在尝试将一些验证和日期选择器放在一个表单中,但由于某种原因,jquery不起作用,我已经搜索了很多并试过几件事,但他们没有工作。 这是我的application.js文件:

//= require jquery
//= require jquery_ujs
//= require jquery-ui-1.8.24.custom.min
//= require jquery.ui.datepicker-es
//= require jquery.validate
//= require messages_es

这是我的application.html.erb:

<%= javascript_include_tag "application" %>

我跑了:rails生成jquery:install,这就是结果:

已弃用您正在使用Rails 3.1并启用资产管道,因此不需要此生成器。               必要的文件已经在您的资产管道中。               只需将//= require jquery//= require jquery_ujs添加到您的app / assets / javascripts / application.js即可               如果您从Rails 3.0升级了应用程序并且仍然在javascripts中有jquery.js,rails.js或jquery_ujs.js,请务必将其删除。               如果您不想启用资产管道,可以在application.rb中将其关闭并重新运行此生成器。

有人可以帮忙吗?

谢谢。

更新:

这是我的表格:

<%= form_for(@contrato) do |f| %>
  <% if @contrato.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@contrato.errors.count, "error") %> no han permitido que el contrato sea guardado:</h2>
      <ul>
      <% @contrato.errors.full_messages.each do |msg| %>
        <li><font color="red"><%= msg %></font></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label 'Obra' %><br />
    <%= f.text_field :contrato_nombre_obra %>
  </div>
 <div class="field">
   <%= f.label 'Nombre Contratista/Empresa' %><br />
   <%= f.select :contratista_id, Contratista.find(:all, :order => "empresa").collect{|c| [c.empresa, c.id] } %>
  </div> 
  <div class="field">
    <%= f.label 'Municipio' %><br />
    <%#= f.number_field :tipo_norma_legal_id %>
    <%= f.select :municipio_id, Municipio.find(:all, :order => "nombre").collect{|c| [c.nombre, c.id] } %>
  </div>
    <div class="field">
    <%= f.label 'Localidad' %><br />
    <%#= f.number_field :tipo_norma_legal_id %>
    <%= f.select :localidad_id, Localidad.find(:all, :order => "nombre").collect{|c| [c.nombre, c.id] } %>
  </div>
  <div class="field">
    <%= f.label 'Tipo de Norma Legal' %><br />
    <%#= f.number_field :tipo_norma_legal_id %>
    <%= f.select :tipo_norma_legal_id, TipoNormaLegal.find(:all, :order => "tipo_norma_legal_descripcion").collect{|c| [c.tipo_norma_legal_descripcion, c.id] } %>
  </div>
  <div class="field">
    <%= f.label 'Nº Norma Legal '%><br />
    <%= f.text_field :contrato_nro_norma_legal %>
  </div>
  <div class="field">
    <%= f.label 'Año Norma Legal' %><br />
    <%= f.text_field :contrato_anio_norma_legal %>
  </div>
  <div class="field">
    <%= f.label 'Nº de Expediente (solo numeros)' %><br />
    <%= f.text_field :contrato_expte %>
  </div>
  <div class="field">
    <%= f.label 'Fecha del Contrato' %><br />
    <%= f.text_field :contrato_fecha %>
  </div>
  <div class="field">
    <%= f.label 'Monto de Contrato ($)' %><br />
    <%= f.text_field :contrato_monto %>
  </div>
  <div class="field">
    <%= f.label 'Plazo de Obra (dias)' %><br />
    <%= f.text_field :contrato_plazo_obra %>
  </div>
  <div class="field">
    <%= f.label 'Contrato Finalizado' %>
    <%= f.check_box :finalizado %>
  </div>
  <div class="actions">
    <br class="clearfix" />
    <%= f.submit 'Guardar', :class=>'button' %>
  </div>

<% end %>


<%= render(:partial => "javascripts") %>

这是部分:

<script type="text/javascript">
 $(document).ready(function () {
     $("#new_contrato").validate({

        rules: {
        "contrato[contrato_nombre_obra]": {required: true, minlength: 3 , maxlength: 60 },
        "contrato[contrato_monto]": {digits: true},
        "contrato[contrato_plazo_obra]": {required: true, digits: true}
        "contrato[contrato_contrato_expte]": {digits: true}
        }
      });
    // Datepicker
        $('#contrato_contrato_fecha').datepicker({
          changeMonth: true,
          changeYear: true,
        });


});
</script>

2 个答案:

答案 0 :(得分:0)

如果您已经生成了应用程序并且没有更改gemfile,那么您应该已经可以访问jQuery和Unobtrusive jQuery。检查它是否包含jquery-rails。如果是,那么您已经准备好使用jquery了。您不需要run rails generate jquery:install

答案 1 :(得分:0)

嗯,首先,非常感谢你帮助我...我已经尝试了另外一件事......我从新鲜开始,我意识到也许我在努力制作javascript时删除了一些东西工作,所以我决定再次创建一个项目(不是理想的事情,对吧?),所以我只是在新项目中复制了我的观点,进行了迁移等等......现在至少验证工作正常,我没有尝试过datepickers或其他东西(希望他们也会工作)。如果知道发生了什么,我会告诉你它可能会帮助别人。