获取复选框的值[Ruby/Sinatra(Rails)]

Ian*_*han 1 ruby forms ruby-on-rails sinatra

我在一个视图上有一些复选框,我想在另一个视图上评估,但我不明白它在做什么.

我已经阅读了帖子/博客,说明了不同的方法name: -

update_params[]                     # array
update_params[0], update_params[1]  # known indexed array
update_params0, update_params1      # differently named
Run Code Online (Sandbox Code Playgroud)

所以第一个似乎是最常见的: -

# views/index.erb
<input type="checkbox" name="update_params[]" value="Copy" />Update the host<br/>
<input type="checkbox" name="update_params[]" value="Start" />Start the software<br/>
Run Code Online (Sandbox Code Playgroud)

应该value编入索引吗?0,1

所以我想要两个结果

1)显示从version.erb视图上的index.erb视图中选择的选项.

所以它看起来像: -

Copy : Yes
Start : No
Run Code Online (Sandbox Code Playgroud)

目前我有: -

# views/version.erb
<p>Copy : <%= params['update_params[0]'] %></p>
<p>Start : <%= params['update_params[1]'] %></p>
Run Code Online (Sandbox Code Playgroud)

2)EVAL选项,来传递给脚本,使得它们成为命令行选项,即-c,-l

所以我的"控制器"

# update.rb
helpers do
  def run_update(version, host, params)
    command = "./update.sh #{params} #{host}" # -c -l
    @ok = system( command )
  end
end

post '/version' do
  run_update(params[:version_list], params[:host], params[:update_params])
  erb :version
end
Run Code Online (Sandbox Code Playgroud)

ear*_*old 5

也许不是依靠索引,你可以使用数组中的键?例如:

<input type="checkbox" name="update_params[copy]" value="Copy" />Update the host<br/>
<input type="checkbox" name="update_params[start]" value="Start" />Start the software<br/>
Run Code Online (Sandbox Code Playgroud)

那么,你可以这样做:

params[:update_params][:copy]
Run Code Online (Sandbox Code Playgroud)