2011-03-05 105 views
0

我有report_controller,我有两个对象,@report和@reporte,我想保存两个对象在数据库中。该工程未经验证,但是当我把验证的模型,我在ReportController#encreate表单验证,两种模式,一种形式,D​​ubleRenderError

我使用exportnew行动得到视图得到

一个AbstractController :: DoubleRenderError ,并encreate保存这种形式。

我在哪里犯错?

ReportController:

class ReportController < ApplicationController 
    before_filter :authenticate_user! 
    before_filter :load 
    layout "application" 

    def load 
    @company = Company.find_by_id(current_user.company_id) 
    @date = Date.today 
    @report = ReportMain.new 
    @reporte = ReportE.new 
    end 

    def index 
    list 
    render("list") 
    end 

    def list 
    @reports = ReportMain.all 
    end 

    def exportnew 
    render("ennew") 
    end 

    def encreate 

    @report = ReportMain.new 
    @reporte = ReportE.new 
    @reportparam = params[:report_main] 


    @report.waste_id = params[:waste][:code] 
    @report.warehouse_id = Warehouse.find_by_user_id(current_user.id).id 
    @report.user_id = current_user.id 
    @report.company_id = current_user.company_id 
    @report.amount = @reportparam[:amount] 
    @report.isimport = false 
    @report.isfinished = false 
    @report.reportnumber = ReportMain.where(:company_id => current_user.company_id).count.to_i+1 
    if @report.save 
     @reporte.report_main_id = @report.id 
    else 
     redirect_to(:action => 'exporttoxicnew') 
    end 

    @reporte.vrstaotpada = params[:vrstaotpada] 
    @reporte.nacinpakovanja = params[:nacinpakovanja] 
    @reporte.ispitivanjebroj = @reportparam[:ispitivanjebroj] 
    @reporte.datumispitivanja = @reportparam[:datumispitivanja] 
    @reporte.q_pripadnost = @reportparam[:q_pripadnost] 
    @reporte.datumpredaje = @date 

    if @reporte.save 
     redirect_to(:action => 'show', :id => @reporte.id) 
     flash[:notice] = "Izveštaj je uspešno kreiran." 
    else 
     redirect_to(:action => 'exporttoxicnew') 
    end 
    end 



    def show 
    @report = ReportMain.find(params[:id]) 
    @warehouse = @report.warehouse.name 
    end 

end 

ReportMain型号:

class ReportMain < ActiveRecord::Base 
    has_many :report_es 
    has_many :report_is 
    belongs_to :user 
    belongs_to :company 
    belongs_to :warehouse 
    belongs_to :waste 

    validates_presence_of :waste_id 
    validates_presence_of :amount 
    validates_length_of :amount, :within => 1..255 

end 

ReportE型号:

class ReportE < ActiveRecord::Base 
    belongs_to :report_main 

    validates_presence_of :vrstaotpada 
    validates_presence_of :nacinpakovanja 
    validates_presence_of :ispitivanjebroj 
    validates_presence_of :datumispitivanja 

    validates_length_of :vrstaotpada, :within => 3..255 
    validates_length_of :nacinpakovanja, :within => 3..255 
    validates_length_of :ispitivanjebroj, :within => 3..255 
    validates_length_of :datumispitivanja, :within => 3..255 

end 

视图开始时(这是巨大的HTML):

<%= form_for(:report_main, :url => {:action => 'encreate'}) do |f| %> 

回答

0

你需要改变:

if @report.save 
    @reporte.report_main_id = @report.id 
else 
    redirect_to(:action => 'exporttoxicnew') 
end 

到:

if @report.save 
    @reporte.report_main_id = @report.id 
else 
    redirect_to(:action => 'exporttoxicnew') 
    return 
end