Я новичок в Rails и изо всех сил пытаюсь отобразить переключатель, проверенный на конкретную запись на основе его логического значения в БД (имя поля - «главное»). После отображения всех записей в таблице пользователь может проверить другую радиокнопку и ее необходимо снова обновить в БД. Таким образом, в основном любое одно вложение можно сделать главным. Что бы я ни делал с form_tag, в большинстве случаев отображается страница, но без таблицы вообще.Rails 5 form_tag со столом и радиокнопкой
вложения/index.html.erb:
<% form_tag user_attachments_path do %>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th> Select one </th>
<th> Attachment Name </th>
<th> Creation Date </th>
<th> Delete Attachment </th>
</tr>
</thead>
<tbody>
<% @attachments.each do |attachment| %>
<%=hidden_field_tag :main, 'attachment.main' %>
<tr>
<td><% radio_button_tag "attachment_id", attachment.id, attachment.main %> </td>
<td><%= attachment.attach.file.basename %></td>
<td><%= attachment.posting_date %></td>
<td><%= button_to "Delete", user_attachment_path(current_user, attachment), method: "delete", data: { confirm: 'Are you sure?' }, class: "btn btn-danger btn-outline btn-md" %></td>
</tr>
<% end %>
</tbody>
</table>
<br>
<%= submit_tag "Select Main", :class =>'button' %>
<% end %>
routes.rb -
post :attachments, to: "attachments#update", as: :attachments
Кроме того, не могу получить доступ к стоимости вновь зарегистрированного радио, как это в моем вложения # обновление, потому что вложения является локальной переменной и не уверен, имеет ли она область вне index.html
if params[:attachment][:main] == 'checked'
Спасибо за al Мне нужна твоя помощь.
Используйте форму для вместо тега формы –
Nah, form_for не используется, когда у вас есть несколько записей. form_for - только для одной записи. Form_tag - это решение, но я столкнулся с проблемой маршрутизации. – Means