day14 知识点小结

partial的用法,以中期作业为例,不鼓励在index下跑<%= @groups.each do |group| %>,这样效能不好。 可以把这部分写进_group_item.html.erb里面,再在index里面引用。 <%= render :partial => "group_item", :collection => @groups, :as => :group %> :as => :group 是指:在 group_item 里面的变数要叫 group。

render :layout 可以用来改变预设的版型,比如job-lisitng里面的layout “admin”。 进阶做法 可以制定某个action要使用的 admin layout layout "admin", :only => [:new] 另外也可以在render的时候就制定要使用哪一个layout

def show 
  render :layout => "admin"
end

甚至可以制定模板再指定layout

def index 
  render :template => "other/weired_topics", layout: "admin"
end

排序中的controller写法

def index 
  @jobs = case params[:order]
          when 'by_lower_bound'
            Job.where(is_hidden: false).order('wage_lower_bound DESC')
          when 'by_upper_bound'
            Job.where(is_hidden: false).order('wage_upper_bound DESC')
          else 
            Job.where(is_hidden :false).order('created_at DESC')
          end
end
scope :published, -> {where(is_hidden: false)}
scope :recent, -> {order('created_at DESC)'}
<%= link_to("", jobs_path(:order => "by_lower_bound")) %>
<%= link_to("", jobs_path(:order => "by_upper_bound")) %>
<%= link_to("", jobs_path ) %>

上传简历pdf的方法

安装gem ‘carrierwave’ 增加栏位:add_column :resumes, :attachment, :string carrierwave 使用的是“Uploader”这个机制,因此呢,我们要 rails g uploader attachment,在resume的model里面加入mount_uploader :attachment, AttachmentUploader 在相应的view里加入栏位。 在controller里面的params(白名单)里面加入vaule(:attachment) [怎么显示resume的数量:<%= link_to(job.resumes.count, admin_job_resumes_path(@job)) %>]

想要下载pdf怎么写

<% if resume.attachment.present? %>
  <%= link_to("download", resume.attachment_url) %>
<% else %>
  no attachment 
<% end %>

如何上传图片 安装gemfile,carrierwave/mini_magick,brew install imagemagick bundle install rails g uploader image,新加栏位,添加model[mount_uploader :image, ImageUploader] 如何调节尺寸 取消include CarrierwaveWave::MiniMagick的注释

process resize_to_fit: [800,800]

version :thumb do 
  process resize_to_fill: [200,200]
end

version :medium do 
  process resize_to_fill: [400,400]
end

图片的显示方法

<%= link_to product_path(product) do %>
<% if @product.image.present? %>
  <%= image_tag(@product.image.medium.url, class: "thumbnail") %>
<% else %>
  <%= image_tag("你找的网站", class: "thumbnail") %>
<% end %>
<% end %>