编辑:我添加了文件字段,并在 jobenrollment 控制器中更改了 jobenrollment 的创建 EDIT2:以下代码应该可以工作
我有一个可以申请工作的应用程序。我有一个用户模型(id、name、email)和一个工作模型(id、title)。我希望我的用户能够申请工作。所以我创建了第三个模型,称为 Jobenrollment (id, user_id, job_id),其中“user_id”在“User”中引用“id”,“job_id”在“Job”中引用“id”
我有一个登录系统(按照 Rails 教程手工制作)。因此,我有一个名为 current_user 的变量,用于当前登录的用户。到目前为止,我的 UI 如下: - 用户已登录 - 他们打开工作的显示页面,查看有关工作的所有信息,然后可以单击通过此表单的应用按钮(位于我渲染的作业视图文件夹的一部分中):
<%= form_for(current_user.jobenrollments.build(job_id: @job.id), :html => { :multipart => true }) do |f| %>
<%= f.hidden_field :job_id %>
<%= f.file_field :resume %>
<%= f.submit "Apply", :class => "btn btn-large btn-success" %>
<% end %>
用户模型如下(user.rb):
class User < ActiveRecord::Base
has_many :jobenrollments, dependent: :destroy
has_many :jobs, :through => :jobenrollments
def unapply!(job)
jobenrollments.find_by_job_id(job.id).destroy
end
工作.rb
has_many :jobenrollments, dependent: :destroy
has_many :users, :through => :jobenrollments
jobenrollments_controller.rb
def create
@job = Job.find(params[:jobenrollment][:job_id])
current_user.jobenrollments.create!(params[:jobenrollment])
redirect_to @job
end
def destroy
@job = Jobenrollment.find(params[:id]).job
current_user.unapply!(@job)
redirect_to root_path
end
到目前为止一切正常。现在我想对其进行扩充,并在使用 Paperclip 注册时添加文件上传。我在如何将文件字段合并到我的表单中时遇到问题..
我跑了:
rails generate paperclip jobenrollment resume
将 Paperclip 添加到 jobenrollments 后,我的 jobenrollment 模型如下:
class Jobenrollment < ActiveRecord::Base
belongs_to :user
belongs_to :job
validates_uniqueness_of :user_id, :scope => :job_id
#resume attachment using Paperclip, cf doc in Github readme
has_attached_file :resume, url: "/resumes/:id/:basename.:extension",
path: ":rails_root/public/resumes/:id/:basename.:extension"
#validates_attachment_presence :resume
结尾
== Schema Information
# Table name: jobenrollments
id :integer not null, primary key
user_id :integer
job_id :integer
created_at :datetime not null
updated_at :datetime not null
resume_file_name :string(255)
resume_content_type :string(255)
resume_file_size :integer
resume_updated_at :datetime
如果任何对 Paperclip 感到满意的人可以帮助我弄清楚这个时髦的东西,那就太棒了。塔安克斯 :)
如果您需要更多信息,请告诉我