0

私の名前はパメラです。私はこのバージョンの 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 generate jquery:install で、これが結果です:

非推奨 アセット パイプラインを有効にして Rails 3.1 を使用しているため、このジェネレーターは必要ありません。必要なファイルは既にアセット パイプラインにあります。//= require jqueryapp/assets/javascripts/application.js にとを追加するだけ//= require jquery_ujsです。Rails 3.0 からアプリをアップグレードしても、JavaScript に 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>
4

2 に答える 2

0

さて、まず第一に、私を助けてくれてありがとう... 最後に別のことを試しました... 私は最初から始めました.JavaScriptを機能させるために何かを削除した可能性があることに気付きました.プロジェクトを再度作成することにしました (理想的なことではありませんよね?) ので、ビューを新しいプロジェクトにコピーし、移行を行いました...そして、少なくとも検証は機能しています。 'datepickers やその他のものはまだ試してはいけません (うまくいけば、それらも動作するでしょう)。何が起こったのかを知っている場合は、それが他の誰かを助けるかもしれないことをお知らせします.

于 2012-10-08T13:06:47.540 に答える
0

アプリケーションを生成し、gemfile を変更していない場合は、すでに jQuery と Unobtrusive jQuery にアクセスできるはずです。jquery-rails が含まれているかどうかを確認します。存在する場合は、jquery を使用する準備ができています。する必要はありませんrun rails generate jquery:install

于 2012-10-07T22:47:30.480 に答える