如何重新组织一些format.js rails 3控制器代码到干净的jquery .js.erb文件中

时间:2011-02-10 18:08:15

标签: jquery ruby-on-rails ruby-on-rails-3

我正在尝试将一些控制器代码重组为.js.erb jquery文件。 (警告,这很麻烦!)

我的创建操作中有这段代码:

 def create
      # do stuff

 if @adverse_event.save
    format.js{
         template_id =@study.template_id
         @template_adverse_event_columns = AdverseEventColumn.find(:all, :conditions => ["template_id is ? OR study_id is ?", template_id, @study.id])
         @adverse_events = AdverseEvent.find(:all, :conditions=>['study_id=?',@study.id])
         @adverse_event_result = AdverseEventResult.new
      render :update do |page|
          # replace some partials           
      end   
    }
    format.html { redirect_to(@adverse_event, :notice => 'Adverse event was successfully created.') }
    format.xml  { render :xml => @adverse_event, :status => :created, :location => @adverse_event }
else
     problem_html = "Error message"
     format.js{
         render :update do |page| 
              page.replace_html 'adverse_event_validation_message', problem_html
         end
    }         
    format.html { render :action => "new" }
    format.xml  { render :xml => @adverse_event.errors, :status => :unprocessable_entity }
end

 end

我正在尝试将其转换为jquery,因此我可以在create.js.erb文件中执行所有div / html替换等操作。如何使用条件基于它是否保存来执行此操作?如果保存成功,我需要两个create.js.erb文件,一个用于format.js,如果不成功,我需要一个吗?我怎么称呼他们?我是在正确的轨道上吗?

非常感谢并且对不起,如果这没有多大意义 - 请随时让我澄清,我会相应地进行编辑。