我有一个包含嵌套模型,表演和位置的表格。嵌套是okey和create方法okey。但是,在同一位置模型中构建矩阵属性的位置内部存在两个属性,行和列,两个整数。
方法Loc(row,col)在模型中生成一个哈希数组,返回数组,其中包含我想要在矩阵内的列和行。
但我不能保存矩阵,因为我不知道我是否正在以正确的方式加入嵌套的参数。有任何想法吗?
def new
if current_user
@event = Event.new
@ event.build_clasification
5次
@performance = @ event.performances.build
8.times {@ performance.locations.build}
结束
其他
redirect_to new_user_session_path
结束
端
def create
if current_user
@event = Event.new(events_params)
@event.hourend = nil if params[:event]["hourend(4i)"].blank? &&
params[:event]["hourend(5i)"].blank?
params[:event][:performances_attributes].values.each do |item|
item[:locations_attributes].values.each do |x|
x[:matrix] = loc(x[:row].to_i,x[:columns].to_i)
end
end
if @event.save
redirect_to events_path
else
rendirect_to 'events#new'
end
else
redirect_to new_user_session_path, alert: "Debes iniciar sesión para ser promotor"
end
end
def loc(row,col)
a = (0...col)
c = Array.new(col){ Hash.new}
a.each do |i|
b = i.to_s(26).each_char.map {|i| ('A'..'Z').to_a[i.to_i(26)]}.join
c[i] = {"fila" => b,"column" => (0...row).to_a}
end
return c
end