Nano Hash - криптовалюты, майнинг, программирование

Как я могу правильно передать параметры контроллеру?

  1. Из представления шоу: я хотел бы передать идентификатор показанного сообщения, чтобы отменить действие и удалить сообщение.

  2. Из представления индекса: я хотел бы передать идентификаторы проверенных сообщений, чтобы отменить действие и удалить их все сразу.

Но я могу удалить только одну запись за раз, даже если я проверю несколько и отправлю их из представления индекса.
Как я могу заархивировать и 1, и 2 одним и тем же действием????

Маршруты

  match 'messages/discard(/:id)' => 'messages#discard', :via => :post , :as => :discard_messages

просмотр индекса

  <%= form_tag(:action => discard, :via => 'post') do %>   
   <% @messages.each do |m| %>
      <tr>
       <td><%= check_box_tag "id",m.id %></td>
       <td><%= m.last_message.id %></td>
       <td><%= 'unread' if m.is_unread?(current_user) %></td>
       <td><%= m.last_message.created_at.to_s(:jp) %></td>
       <td><%= m.last_sender.username %></td>
       <td><%= link_to m.subject, show_messages_path(:id => m, :breadcrumb => @box) %></td>
      </tr>
   <% end %>
   <%= submit_tag "discard", :class => 'btn' %>
  <% end %>

показать вид

<%= link_to 'Discard', discard_messages_path(@messages), :class => 'btn', :method => 'post'  %>

контроллер

  def discard  
      conversation = Conversation.find_all_by_id(params[:id])
    if conversation
      current_user.trash(conversation)
      flash[:notice] = "Message sent to trash."
    else
      conversations = Conversation.find(params[:conversations])
      conversations.each { |c| current_user.trash(c) }
      flash[:notice] = "Messages sent to trash."
    end
       redirect_to :back 
  end

Ответы:


1

используйте имя [] в своем html, которое рельсы затем сделают доступным в виде массива в параметрах

index.html.erb

<td><%= check_box_tag "message_id[]", m.id %></td>

контроллер

# ...
else
  conversations = Conversation.where("id IN (?)", params[:message_id][])
  # ...

чтобы еще больше упростить ситуацию, я бы удалил условное выражение в вашем действии и создал два отдельных действия.

маршруты

resource :messages do 
  member do
    post 'discard' # /messages/:id/discard
  end
  collection do
    post 'discard_all' # /messages/discard_all?message_id[]=1&message_id[]=22
  end
end
22.07.2012
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..