在创建之前在嵌套表单中设置一个属性

时间:2015-10-07 01:00:03

标签: javascript ruby-on-rails ruby nested-forms has-many-through

我有一个包含嵌套模型,表演和位置的表格。嵌套是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

0 个答案:

没有答案