編輯:我添加的文件領域,改變了jobenrollment控制器 EDIT2的jobenrollment的創作:下面的代碼應該工作基於連接表使用回形針:工作申請
我有一個應用程序,並工作應用。我有一個用戶模型(ID,名稱,電子郵件)和一個工作模型(ID,標題)。我希望我的用戶能夠申請一份工作。所以我創建了第三個叫Jobenrollment(id,user_id,job_id)的模型,在user中引用了「user」和「job_id」引用了「Job」中的「id」
我有一個登錄系統手動遵循Rails教程)。因此,我有一個名爲current_user的變量,用於當前登錄的用戶。我的用戶界面如下所示: - 用戶登錄 - 他們打開作業的顯示頁面,查看有關作業的所有信息,以及可以點擊通過這種形式的應用按鈕(在部分生活,在工作的看法文件夾,我渲染):
<%= 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
job.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
將回形針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
如果任何人都喜歡回形針可以幫助我的身材這個時髦的東西了,那真棒。 Thaaanks :)
也讓我知道如果您需要了解更多信息