当前位置: 首页 > 工具软件 > carrierwave > 使用案例 >

rails中关于carrierwave、kaminari、roo组件分享

钱锐
2023-12-01

carrierwave组件

carrierwave组件是一个,文件/图片 上传下载相关的组件,使用配置如下

①:在Gemfile中加入gem ‘carrierwave’, '0.6.2’进行上传配置
②:执行bundle install
③:rails generate uploader Avatar #将会生成文件app/uploaders/avatar_uploader.rb
这个文件是用来配置图片上传的名字、地址、大小等一系列东西的
④:在model中添加如下配置(这个model是你需要保存图片数据库表对应的model,
其中avatar,是你保存图片的字段,AvatarUploader是第③步生成的名字)
mount_uploader :avatar, AvatarUploader
⑤:在生成的app/uploaders/avatar_uploader.rb文件中进行如下配置

  def extension_white_list
	%w(jpg jpeg gif png)
  end

⑥:前端form表单上传

<%= f.file_field :avatar %>
 #前端显示
<%= image_tag@user.avatar_url if @user.avatar %>

kaminari组件

kaminari:分页组件 (比较简单)

①:在Gemfile中加入gem 'kaminari’进行分页配置
②:执行 bundle install
③:执行rails g kaminari:config 在config\initializers生成一个对分页进行配置的文件
④:在controller中添加

def index
        @events = Event.page(params[:page]).per(5)
end

即可实现分页 前端配置未确定
⑤:前端对应页面直接写入
<%= paginate @products %>即可
⑥:::
如果你想修改其中的文字的话,可以通过修改相应的config/ locales 下的语言文件en.yml来实现
例如:在默认语言en:之后添加

 views:
    pagination:
      first: "&laquo; 首页"
      last: "末页 &raquo;"
      previous: "&laquo; 上一页"
      next: "下一页 &raquo;"
      truncate: "..."

会变成中文的分页

roo组件

roo:Excel读取组件 (比较简单)

①:在Gemfile中加入gem ‘roo’进行分页配置
②:执行 bundle install
③:直接在controller使用xlsx = Roo::Spreadsheet.open(’/home/loginPro/test.xlsx’)
作用:读取xlsx文件,然后可以对xlsx直接操作

eg:render plain: xlsx.row(j)[i].inspect等等
xlsx.row(j)[i]、xlsx.column(1)[1]

devise:登录注册相关组件
关于devise组件可以参考这篇文章,介绍比较详细

 类似资料: