WedX - журнал о программировании и компьютерных науках

Rails обновляет значение поля формы на основе значения collection_select

Я относительно новичок в Rails, и я искал форумы, которые кажутся вечностью, и я не нашел решения своей проблемы. Вероятно, это просто из-за моей неопытности в качестве разработчика, но я был бы признателен за любую помощь, которую кто-либо может предложить.

Я создаю приложение с моделью раундов, и у каждого раунда много инвесторов (это отдельная модель). Кроме того, существует также модель Stock, которая содержит различные данные о типе акций, которые покупает инвестор. Установлены все необходимые связи между моделями.

Когда я создаю нового инвестора, я пытаюсь автоматически заполнить форму в зависимости от типа выбранной акции. Вот форма:

//app/views/investors/new.html.erb
<%= form_for(@investor) do |f| %>
  <%= render 'shared/error_messages', object: f.object %>

  <%= f.label :security_name %>
  <%= f.collection_select :stock_type, Stock.all, :id, :security_name, prompt: true, class: 'form-control' %>

  <%= f.label :share_price %>
  <%= f.number_field :share_price, :readonly => true, class: 'form-control'%>

  <%= f.submit "Add Investor", class: "btn btn-primary" %>
<% end %> 

Первое поле в форме представляет собой раскрывающийся список, который позволяет пользователю выбрать тип акций, которые покупает инвестор. Это работает правильно.

Чего я не смог понять (и с чем мне нужна помощь), так это как автоматически установить значение number_field как цену акции выбранного типа акций. Я знаю, что для этого требуется какая-то форма Javascript, но все, что я пробовал, не дало функционального результата.

Часть проблемы, с которой я столкнулся, заключается в том, что, когда я читаю ответы на вопросы других людей, я не совсем уверен, куда поместить предложенный код, поэтому эта информация также будет полезна.

Использование Rails версии 4.2.2


Ответы:


1

Предполагая, что логика для share_price проста. Я бы просто использовал поле данных, чтобы добавить это значение ко всем тегам выбора.

options_for_select([["GOOGLE", "1", {data: {price: "25.6"}}], ["Apple", "2", , {data: {price: "25.6"}}], ...])

Затем во фрагменте javascript над вашей формой или в соответствующем файле investor.js.coffee.

$("#investor_stock_type").change () -> $("#investor_share_price").value = $(this).data("price")

Возможные синтаксические ошибки в сторону. Это должно приблизить вас к тому, чего вы хотите.

22.06.2016
Новые материалы

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


Для любых предложений по сайту: [email protected]