2011-08-25 88 views
1

我在一个视图上有一些复选框,我想在另一个视图上评估,但我不明白它在做什么。获取复选框的值[Ruby/Sinatra(Rails)]

我读过的文章/博客,说明不同的做法name: -

update_params[]      # array 
update_params[0], update_params[1] # known indexed array 
update_params0, update_params1  # differently named 

因此,与这似乎是最常见的第一个打算: -

# 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/> 

如若value索引? 01

因此,我希望两个结果

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

所以它看起来是这样的: -

Copy : Yes 
Start : No 

目前我有: -

# views/version.erb 
<p>Copy : <%= params['update_params[0]'] %></p> 
<p>Start : <%= params['update_params[1]'] %></p> 

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 

回答

4

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

<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/> 

那么,你可以做的东西,如:

params[:update_params][:copy]