Поля для выбранного значения - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть форма с полями для помощника, и мне нужно получить значение каждого из этих полей в моем приложении rails.

<%= form.fields_for :expenses do |expense| %>
      <%= render 'expense_fields', f: expense %>
<% end %>
<%= link_to_add_fields "Add field", form, :expenses %>

cost_fields.html.erb

<div class="row">
  <div class="col-md-5">
    <div class="form-group">
        <%= f.label :expense_name %>
        <%= f.select(:expense_name, options_for_select([['Hotel', 'hotel'], 
        ['Registration', 'registration'], 
        ['Meals', 'meals'], 
        ['Flight', 'flight'], 
        ['Mileage', 'mileage'],
        ['Car Rental', 'car rental'],
        ['Parking', 'parking'],
        ['Traning', 'training']],), { include_blank: true }, id: 'principal_selection', class: 'form-control') %> 
    </div>
  </div>
    <% if current_user.admin? || current_user.principal? || current_user.super? %>
      <div class="col-md-3">
    <% else %>
      <div class="col-md-7">
    <% end %>
      <div class="form-group">
        <%= f.label :expense_cost %>
        <%= f.number_field :cost, class: 'form-control', placeholder: 'Cost', step: :any %>
      </div>
    </div>
  <% if current_user.principal? || current_user.admin? || current_user.super? %>
  <div class="col-md-4">
    <div class="form-group">
      <%= f.label :payment_type %>
      <%= f.select(:payment_type, options_for_select([['Out of pocket', 'Out of Pocket'], ['Corporate Card', 'Corporate Card'], ['PO', 'PO']], selected: "Half Day"), { include_blank: false }, class: 'form-control') %>
    </div>
  </div>
  <% end %>
</div>

Я проверил направляющие рельсов и не смог найти способ прямого извлечения значения длякаждое поле для в помощнике выбора.У кого-нибудь есть идеи?

Я пытался сделать selected: "#{@expense.expense_name}", но получил нулевую ошибку, потому что @expense не определен.Итак, я вошел в метод редактирования в контроллере pdforms и попробовал это:

def edit
@expenses = @pdform.expenses
end

Это не дало никакого результата, поэтому я попробовал это:

def edit
@expenses = @pdform.expenses
@expenses.each do |ex| 
  @expense = ex
end

Но это просто вернуло одно значение вФорма, когда это редактируется.Есть еще идеи?

1 Ответ

0 голосов
/ 26 сентября 2018

Когда вы используете fields_for, каждый элемент, на который вы ссылаетесь, доступен как .object для каждого field экземпляра.Так что в этом случае используйте:

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