Как создать раскрывающийся список в форме Rails, где пользователь может изменить значение по умолчанию? - PullRequest
0 голосов
/ 19 марта 2019

Мне бы хотелось, чтобы в моей форме Rails был раскрывающийся список, где пользователи могли бы выбрать район города, например, "Marchmont", "New Town", "Baberton" и т. Д. При добавлении заказа. Я хотел бы, чтобы после того, как они сделали выбор, это будет выбор по умолчанию для следующих раз, когда они используют форму для добавления заказа (чтобы им не нужно было продолжать выбирать), но также чтобы они могли изменить их выбор в любое время. Надеюсь, что это имеет смысл. Я использую самоцвет Simple Form. Заранее спасибо! :)

Ответы [ 2 ]

0 голосов
/ 22 марта 2019

Если у вас есть возможность использовать драгоценные камни, у меня были хорошие результаты с select2-rails.

0 голосов
/ 19 марта 2019

@ Стив

Я сделаю пару предположений.

1.) Вы знаете, как создавать формы в движке шаблонов рельсов.2.) вы понимаете, как создать выпадающее меню с помощью гема Simple Form

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

Есть несколько подходов кхранение этих данных.

Сохранение пользовательских данных.

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
...