导入导出xml

controller中

  def export_steps
    s = @part.steps.where('program_id in (?)', Program.checkable.map(&:id))
    send_data s.to_xml(:only => [:position, :program_id, :name, :minute, :description]), :filename => "#{@part.chart.name}.xml"
  end

  def import_steps
    if xml_file = params[:part][:xml_file]
      attrs = Hash.from_xml xml_file.read
      @part.steps << attrs.values.first.inject([]) {|a, s| a << Step.new(s) }
      flash[:notice] = I18n.t("flash.upload.success")
    else
      flash[:error] = I18n.t("flash.upload.no_file")
    end
    redirect_to :back
  rescue err # rescue any other format problem
    redirect_to :back, :error => I18n.t("flash.upload.fail")
  end
 

 

views中

<% if params[:part_id] -%>
  <% part = Part.find(params[:part_id]) -%>

  <div id='dialog'>
    <%= semantic_form_for(part, :method => 'post', :url => import_steps_part_path(part)) do |f| %>
      <%= f.inputs do -%>
        <%= f.input :xml_file, :as => :file %>
      <% end %>
      <%= f.actions do -%>
        <%= f.submit '上传' %>
      <% end %>
    <% end %>
  </div>

<% end -%>


<li><%= link_to '工艺模板导出', export_steps_part_path(@steps.first.part) if @steps.first.part %></li>
<li><a href='#' id='show-dialog'>工艺模板导入</a></li>
 

js.coffee中

  $('#show-dialog').click( ->
    $('#dialog').dialog({
      title: '上传模板文件',
      width: '400px'
    })
    return false
  )
 

route中

  resources :parts do
    collection do
      get 'outsource'
    end

    member do
      get 'export_steps'
      post 'import_steps'
    end
  end
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值