2017-01-03 4 views
1

Я новичок в 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 Мне нужна твоя помощь.

+0

Используйте форму для вместо тега формы –

+0

Nah, form_for не используется, когда у вас есть несколько записей. form_for - только для одной записи. Form_tag - это решение, но я столкнулся с проблемой маршрутизации. – Means

ответ

0

Эрб необходимо изменить для отображения. На данный момент он выполняет только код. This может помочь.

<% form_tag user_attachments_path do %> 

должен быть

<%= form_tag user_attachments_path do %> 
+0

Да, я уже понял это, но основная проблема заключается в том, что form_tag направляется на метод non-RESTful, скажем, update_main в контроллере, подобном этому railscasts: http://railscasts.com/episodes/165-edit-multiple? вид = asciicast. На самом деле что-то с form_tag и маршрутами – Means

+0

Вопрос о том, «Что бы я ни делал с form_tag, в самой странице отображается, но без таблицы вообще», на которую я ответил. Вы можете начать новую тему для своего другого вопроса. Если вы нажмете кнопку «Отправить», что произойдет? Посмотрите в журналах, и вы увидите, что передается в хеше params и как его форматировать. Также в radio_button_tag erb отсутствует знак равенства. tbh, я не уверен, что понимаю, чего вы пытаетесь достичь, поэтому я отправлю еще один ответ с моими предположениями. – margo

Смежные вопросы