Vee*_*Vee 1 arrays parameters hash ruby-on-rails dynamically-generated
是否可以动态创建散列的键名?我正在传递以下哈希参数:
params[:store][:store_mon_open(5i)]
params[:store][:store_mon_closed(5i)]
params[:store][:store_tue_open(5i)]
params[:store][:store_tue_closed(5i)]
.
.
.
params[:store][:store_sun_open(5i)]
params[:store][:store_sun_closed(5i)]
Run Code Online (Sandbox Code Playgroud)
为了检查每个参数是否存在,我使用了两个数组:
days_of_week = [:mon, :tue, ..., :sun]
open_or_closed = [:open, :closed]
Run Code Online (Sandbox Code Playgroud)
但是,我似乎无法弄清楚如何动态创建 params 哈希(第二个键(带有数组。这是我到目前为止所拥有的:
days_of_week.each do |day_of_week|
open_or_closed.each do |store_status|
if !eval("params[:store][:store_#{day_of_week}_#{store_status}(5i)").nil
[DO SOMETHING]
end
end
end
Run Code Online (Sandbox Code Playgroud)
我尝试了很多方法,包括 eval 方法(如上所列),但 rails 似乎不喜欢“5i”周围的括号。任何帮助是极大的赞赏!
你应该能够做到
if params[:store]["store_#{day_of_week}_#{store_status}(5i)".to_sym]
Run Code Online (Sandbox Code Playgroud)
请注意,您错过了?on.nil?并且!object.nil?可以缩短为object
| 归档时间: |
|
| 查看次数: |
3423 次 |
| 最近记录: |