如何一次切换多个记录的标志?

时间:2012-07-10 05:36:22

标签: ruby-on-rails ruby-on-rails-3

我正在使用Mailboxer gem。

检查行,并且视图传递多个ID,但此操作仅在接收参数时传输第一个ID#的记录。

我需要做什么来删除与参数中传递的ID相对应的所有记录?

参数

{"utf8"=>"✓",
 "authenticity_token"=>"35UoVt+dvwrGAgg+KZjn8jCZjlkdPj1ktCg5ASyCI4w=",
 "checked_items"=>{"15"=>"15",
 "14"=>"14"},
 "commit"=>"Trash All Checked"}

动作

def discard

  conversation = Conversation.find_by_id(params[:checked_items].keys)

  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 个答案:

答案 0 :(得分:0)

使用find_all_by_id代替find_by_id,您将获得所有会话,然后逐个删除。