2011-08-25 90 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]