从param中删除hash(array)并放入变量

hol*_*ard 1 arrays variables hash ruby-on-rails ruby-on-rails-3

我正在从一个表单中检索控制器中的一个参数,我想从中删除一个哈希并放入一个变量供以后使用.

让我们假设该参数包括以下内容:

@form_data = params[:project] // <-- :id, :title, :description, :members
Run Code Online (Sandbox Code Playgroud)

':members'是一个数组(从复选框中检索),我希望将该数组放入一个新变量供以后使用,它应该从param中删除.

@members // <-- should contain :members 

@project = Project.new(params[:project])  // <-- ':members' is removed
Run Code Online (Sandbox Code Playgroud)

怎么可以这样做?

Bab*_*nov 7

您可以使用删除方法

@members = params[:project].delete(:members)
@project = Project.new(params[:project])
Run Code Online (Sandbox Code Playgroud)


Pet*_*own 5

为此,您至少有两个选择。

1) 初始化项目时忽略 members 键

@members = params[:project][:members]
@project = Project.new(params[:project].except(:members))
Run Code Online (Sandbox Code Playgroud)

2) 从 params 对象中删除 members 键

@members = params[:project].delete(:members)
@project = Project.new(params[:project])
Run Code Online (Sandbox Code Playgroud)