如何使用carrierwave gem(win7)在rails中查看和编辑上传的Excel工作表

时间:2016-04-22 07:13:55

标签: ruby-on-rails-4

我是rails的新手,想要使用我的上传器执行以下任务 -

1)以可编辑模式在导轨中查看上传的Excel工作表

2)将编辑过的表保存在数据库(sqlite3)中。

我真的不知道如何处理这个"查看方法"(在控制器中)以获得我的解决方案,这就是将视图方法留空的原因。

另外,请解释什么是" resume.attachment_url"干嘛  <%= link_to"下载简历",resume.attachment_url%>在index.html.erb。

谢谢, Aarzoo Goyal

的routes.rb

Rails.application.routes.draw do

   resources :resumes, only: [:index, :new, :create, :destroy]
   root "resumes#index"

  get 'resumes/index'

  get 'resumes/new'

  get 'resumes/create'

  get 'resumes/destroy'

模型 - Resume.rb

class Resume < ActiveRecord::Base
 mount_uploader :attachment, AttachmentUploader # Tells rails to use this uploader for this model.
   validates :name, presence: true # Make sure the owner's name is present.
   validates :attachment, presence: true 
end

resume_controller.rb

class ResumesController < ApplicationController
   def index
      @resumes = Resume.all
   end

   def new
      @resume = Resume.new
   end

   def create
      @resume = Resume.new(resume_params)

      if @resume.save
         redirect_to resumes_path, notice: "The resume #{@resume.name} has been uploaded."
      else
         render "new"
      end

   end

   def view

   end


   def destroy
      @resume = Resume.find(params[:id])
      @resume.destroy
      redirect_to resumes_path, notice:  "The resume #{@resume.name} has been deleted."
   end

   private
      def resume_params
      params.require(:resume).permit(:name, :attachment)
   end

end

new.html.erb

<% if !@resume.errors.empty? %>
   <div class = "alert alert-error">

      <ul>
         <% @resume.errors.full_messages.each do |msg| %>
            <li><%= msg %></li>
         <% end %>
      </ul>

   </div>
<% end %>

<div class = "well">
   <%= form_for @resume, html: { multipart: true } do |f| %>
      <%= f.label :name %>
      <%= f.text_field :name %><br />
      <%= f.label :attachment %>
      <%= f.file_field :attachment %><br />
      <%= f.submit "Save", class: "btn btn-primary" %>
   <% end %>
</div>

index.html.erb

<% if !flash[:notice].blank?%>
   <div class="alert alert-info">
    <%= flash[:notice]%>

   </div>
<%end%>
<br />

<%= link_to "New File", new_resume_path, class: "btn btn-primary"%>
<br />
<br />

<table class="table table-bordered table-striped">
    <thead>
        <tr>
            <th>Name</th>
            <th>Download Link</th>
            <th>View</th>
            <th>Delete</th>

        </tr>   
    </thead>
    <tbody>
        <% @resumes.each do|resume| %>
        <tr>
            <td><%= resume.name%></td>
            <td><%= link_to "Download Resume", resume.attachment_url %></td>
            <td><%= link_to "View                  "%></td>
            <td><%= button_to "Delete", resume, method: :delete, class: "btn btn-danger", confirm: "Are you sure to delete #{resume.name}?" %></td>

        </tr>

      <% end %>
    </tbody>

</table>

0 个答案:

没有答案