Ошибка в поле наблюдения - PullRequest
       0

Ошибка в поле наблюдения

0 голосов
/ 04 декабря 2011
``enter code here<%= form_for(@person) do |f| %>
  <% if @person.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@person.errors.count, "error") %> prohibited this person from being saved:</h2>

      <ul>
      <% @person.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </div>
  <div class="field">
    <%= f.label :country_id %><br />
    <%= f.collection_select :country_id, Country.all(:order => "name"), :id, :name, :prompt => "-- Select a Country --"%>
    <%= observe_field (:person_country_id, :url => {:action => "update_state_div"}, :with => 'person_country_id'%>
  </div>
  <div class="field">
    <%= f.label :state_id %><br />
    <%= f.collection_select :state_id, State.all(:order => "name"), :id, :name, :prompt => "-- Select a State --"%>


    <%observe_field 'person_country_id', :url => {:action => "update_state_div"}, :with => 'person_country_id'%>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

пожалуйста, кажется, что-то не так с поле наблюдения, я ожидал, что когда я укажу значение для страны, в штатах этой страны появится

Ответы [ 2 ]

3 голосов
/ 04 декабря 2011

Похоже, что вы сделали ошибку, когда встраивали Ruby: <% observe_field %> ничего не вставляет, а <%= observe_field %> вставляет вывод из функции.

Попробуйте это:

<%= observe_field 'person_country_id', :url => {:action => "update_state_div"}, :with => 'person_country_id'%>

Edit:

observe_field был добавлен в дополнение к Prototype, библиотеке javascript , не включенной в Ruby on Rails 3. Этот вопрос также касается этой проблемы: Observe_field в рельсах 3 .

Если вы хотите использовать его, вы можете установить этот плагин , набрав

rails plugin install git://github.com/rails/prototype_legacy_helper

в консоль.

Кажется, это несовместимо с jQuery, поэтому вам, возможно, придется удалить jQuery или написать свой собственный javascript, чтобы делать то, что вы хотите.

Еще одно редактирование:

Этот вопрос решает проблему в обычных JavaScript / jQuery и HTML: jQuery Выбор цепочки Страна / Штат с помощью OptGroup . Вы должны иметь возможность изменить его для Ruby on Rails.

0 голосов
/ 02 сентября 2014

добавьте следующее в ваш Gemfile и запустите bundle:

gem 'prototype_legacy_helper', '0.0.0', :git => 'git://github.com/rails/prototype_legacy_helper.git'
gem 'prototype-rails'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...