【发布时间】:2015-04-21 01:29:59
【问题描述】:
在我的 Rails 应用程序中,我有这三个模型 User、Job 和 Job_application,这三个模型之间的关联如下
class Job < ActiveRecord::Base
has_many :job_applications
has_many :applicants, :through => :job_applications, :source => :user
accepts_nested_attributes_for :job_applications
class JobApplication < ActiveRecord::Base
belongs_to :user
belongs_to :job
class User < ActiveRecord::Base
has_many :job_applications
has_many :applied_jobs, :through => :job_applications, :source => :job
在我的工作控制器中,我有这个方法,以便用户可以申请工作
def apply
@job = Job.find_by_slug(params[:id])
@job_application = JobApplication.new
@job_application.user_id = current_user.id
@job_application.job_id = @job.id
if @job_application.save
JobMailer.somebody_applied(@job).deliver
redirect_to job_url(@job)
else
render :action => "show"
end
end
在我的工作视图页面中,我有这个 apply 方法的代码
<button type="button" id="control_gen_5" data-toggle="modal" data-target="#myModal">
<span>Envoyer un candidature</span>
</button>
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close close-this" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">Apply to <%= @job.job_title %></h4>
</div>
<p><%= current_user.full_name%></p>
<%= form_for @job, :url => apply_job_path(@job), :method => :post, :html => { :multipart => true } do |f| %>
<%= f.fields_for :job_applications, @job.job_applications.build do |s| %>
<%= s.hidden_field :user_id %>
<%= s.hidden_field :job_id %>
<div class="modal-body">
<p>
<div class="form-inputs">
<%= s.text_area :cover_letter, :input_html => { :rows => 5, :class => 'span12', :value => cookies[:cover_letter] }, :label => false %>
</div>
</p>
</div>
<% end %>
<div class="modal-footer">
<%= f.submit 'Postuler', :class => 'btn btn-info', :name => nil %>
</div>
<% end %>
</div>
</div>
</div>
我也有这个代码,所以我可以查看谁申请了工作和他们的求职信
</ul>
<% @job.job_applications.each do |job_application| %>
<li>
<%= job_application.user.full_name %>
<%= job_application.cover_letter %>
</li>
<% end %>
</ul>
但就是只显示用户全名,不显示求职信。
我已经在我的 rails 控制台中尝试过这段代码
j.job_applications.last where j = Job.last
这给了我这个
#<JobApplication id: 42, job_id: 24, user_id: 49, cover_letter: nil, created_at: "2015-04-20 14:22:31", updated_at: "2015-04-20 14:22:31">
任何人都可以帮助了解为什么我的cover_letter 没有得到任何结果
【问题讨论】:
-
提交表单时可以发布日志吗?
标签: ruby-on-rails ruby ruby-on-rails-4 nested-attributes