Как мне исправить это одно извлечение данных? - PullRequest
0 голосов
/ 24 мая 2019

Пожалуйста, помогите, у меня есть одно извлечение данных, которое не работает с collection_select в rails 5.2, и я не могу найти то, что я сделал неправильно.

Новое приложение, использующее rails 5.2 и ruby ​​2.6.1, только этот фрагмент кода не может быть выполнен.

        #---- called by views/myoffer/_form.html.erb
        #---code shown below
module MyoffersHelper

    @my_scosts =    Setmeup.find_by_sql("select (t_is || '--' || description) as shipr, description as cost  from setmeups where active is true and g_is = 'Ship' order by t_is, srby;")

    end
end
      #----- extracted from _form.html.erb
<%= form_with(model: myoffer, local: true) do |form| %>
        # lots of stuff, including 
        # working collection_select 

<div class="field">
<% @my_scosts = "" %>
<% get_scost %>
<%= @myoffer.shipping_quoted %>  # proves shipping_quoted has value
  <%= form.label :shipping_quoted %>
  <%= form.collection_select :shipping_quoted, @my_scosts, :cost, :shipr%>
</div>

        # data as pulled by sql
        FedEx_Large--17.00   | 17.00
         FedEx_Medium--7.00   | 7.00
         FedEx_Small--5.00    | 5.00
         Self_Delivery--1.00  | 1.00
         USPS_2d_Large--9.00  | 9.00
         USPS_2d_Medium--5.00 | 5.00
         USPS_2d_Small--3.00  | 3.00

Этот collection_select отображает и назначает правильное значение, но не запоминает последнее выбранное значение. (значение существует, как показано оператором debug над form.label.) У меня есть несколько других операторов find_by_sql collection_select, которые работают и действительно запоминают последнее значение. Пожалуйста, помогите мне понять, что я неправильно кодировал?

1 Ответ

0 голосов
/ 25 мая 2019

После дальнейших экспериментов (бездельничая, как идиот) у меня возникла мысль, а что, если значение в раскрывающемся списке должно быть таким же, как при сохранении данных в базе данных? Данные, которые я использую, содержатся в текстовом поле таблицы Setmeup, поле shipping_quoted в таблице myoffer является десятичным. Я изменил SQL-запрос следующим образом:

@myscosts = Setmeup.find_by_sql("select (t_is || '--' || description) as shipr, description::float as cost  from setmeups where active is true and g_is = 'Ship' order by t_is, srby;")

и collection_select теперь запоминает от изменения состояния до изменения состояния! Кто бы мог, хотя бы ???

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...