#ruby-on-rails #ruby #simple-form
#ruby-on-rails #ruby #простая форма
Вопрос:
Я хотел бы иметь выпадающий список в моей форме Rails, где пользователи могли бы выбирать район города, например «Марчмонт», «Нью-Таун», «Бабертон» и т.д., При добавлении заказа. Я бы хотел, чтобы после того, как они сделали выбор, это было выбрано по умолчанию в последующие разы, когда они используют форму для добавления заказа (чтобы им не приходилось постоянно его выбирать), но также чтобы они могли изменить свой выбор в любое время. Надеюсь, это имеет смысл. Я использую Simple Form gem. Заранее спасибо! 🙂
Комментарии:
1. Вы могли бы добавить поле
default_city_area
вUser
модель, затем сохранить выбранное значение в этом поле и использовать его в качестве значения по умолчанию для вашей формы в следующий раз.
Ответ №1:
@Steve
Я сделаю пару предположений.
1.) вы знаете, как создавать формы в движке шаблонов rails. 2.) вы понимаете, как создать выпадающее меню, используя Simple Form gem
Итак, у вас есть пара вариантов, основанных на том, чего вы на самом деле хотите достичь. Исходя из того, что вы кратко описали, похоже, что у вас есть какая-то ситуация с электронной коммерцией / оформлением заказа, в которой вы хотите автоматическое завершение, чтобы упростить ее для пользователя.
существует несколько подходов к хранению этих данных.
Сохранение пользовательских данных.
1.) Сохраните его прямо в пользовательской модели в разделе district_of_last_order
2.) Сохраните его прямо в модели заказа, которую заказывает пользователь has_many
. Затем вы можете выбрать городской округ первого заказа и указать его
Лично я бы предпочел # 2, поскольку вы, вероятно, хотите иметь возможность тесно связывать порядок с пользователем, и сохранение этой информации дважды является избыточным, поскольку вы всегда можете сделать что-то вроде current_user.orders.first.district
или что-то еще,
в вашем ERB, где вы создаете форму, вы можете затем сделать что-то в этом роде:
<%= simple_form_for(@order) do |f| %>
... other input fields
<% if current_user.orders.first %>
<%= f.input as: :select selected: current_user.orders.first.district %>
<% else %>
<%= ... your regular dropdown menu here without the default %>
<% end %>
... rest of your form
Ответ №2:
Если у вас есть возможность использовать gems, у меня были хорошие результаты с select2-rails.