【发布时间】:2014-09-10 02:31:33
【问题描述】:
我已经从以前的帖子中将“已发布”的初步布尔值设置为“假”,但在此预览屏幕中,我希望允许用户通过单击来将此值更新为“真”这篇文章发表了,但我遇到了困难。
查看 - preview.html.erb
<div class="preview clearfix">
<%= form_for @job, url: '/jobs/publish/' do |f| %>
<%= f.hidden_field :publish, :value => true %>
<span><i class="glyphicon glyphicon-exclamation-sign"></i> Review your job post! If approved, submit it, or cancel and try again.</span>
<%= f.submit "Post Job", :class => 'btn btn-default btn-sm' %>
<a href="/jobs/new" class="btn" style="margin-top:3px;">Cancel</a>
<% end %>
</div>
CONTROLLER - jobs_controller.rb
class JobsController < ApplicationController
def index
@jobs = Job.all #where(publish: true)
end
def show
@job = Job.find(params[:id])
end
def new
end
def preview
@job = Job.find(params[:id])
end
def create
job = Job.new
job.job_title = params[:job][:job_title]
job.job_location = params[:job][:job_location]
job.job_description = params[:job][:job_description]
job.job_responsibilities = params[:job][:job_responsibilities]
job.job_requirements = params[:job][:job_requirements]
job.specialties = params[:job][:specialties]
job.job_level = params[:job][:job_level]
job.how_to_apply = params[:job][:how_to_apply]
job.company = params[:job][:company]
job.company_description = params[:job][:company_description]
job.company_website = params[:job][:company_website]
job.avatar = params[:job][:avatar]
job.agree = params[:job][:agree]
job.publish = false
job.save!
redirect_to '/jobs/preview/' + job.id
end
def update
job = Job.find(params[:id]) ## Using "find"
job.publish = true
job.save!
redirect_to '/jobs'
end
end
路线
post 'jobs/publish/' => 'jobs#update'
模型 - job.rb
class Job
include Mongoid::Document
mount_uploader :avatar, AvatarUploader
field :job_title, type: String
field :job_location, type: String
field :job_description, type: String
field :job_responsibilities, type: String
field :job_requirements, type: String
field :specialties, type: String
field :job_level, type: String
field :how_to_apply, type: String
field :company, type: String
field :company_description, type: String
field :company_website, type: String
field :agree, type: Boolean
field :publish, type: Boolean
end
日志
由 GridfsController#avatar 处理为 JPEG 参数:{"id"=>"53c985c36d7572b6cd000000", "filename"=>"cuben-rustic"} MOPED:127.0.0.1:27017 QUERY 数据库=ffos_development 集合=作业选择器={"_id"=>BSON::ObjectId('53c985c36d7572b6cd000000')} 标志=[] 限制=0 跳过=0 批处理大小=无字段=无运行时: 2.8140ms MOPED: 127.0.0.1:27017 QUERY 数据库=ffos_development 集合=fs.files 选择器={"$query"=>{"filename"=>"uploads/job/avatar/53c985c36d7572b6cd000000/cuben-rustic.jpg"}, "$ orderby"=>{"uploadDate"=>-1}} flags=[] limit=-1 skip=0 batch_size=nil fields=nil 运行时间:0.4260ms MOPED:127.0.0.1:27017 COMMAND 数据库=ffos_development 命令={:count=>"fs.chunks", :query=>{"files_id"=>BSON::ObjectId('53c985c36d7572b6cd020000')}} 运行时间:0.3460ms MOPED: 127.0.0.1:27017 QUERY 数据库=ffos_development 集合=fs.chunks 选择器={"$query"=>{"files_id"=>BSON::ObjectId('53c985c36d7572b6cd020000'), "n"=>{"$lt "=>7, "$gte"=>0}}, "$orderby"=>{"n"=>1}} flags=[] limit=0 skip=0 batch_size=nil fields=nil 运行时间:8.0450ms MOPED:127.0.0.1:27017 GET_MORE 数据库=ffos_development 集合=fs.chunks 限制=0 cursor_id=120760258650 运行时间:1.8960 毫秒 MOPED:127.0.0.1:27017 COMMAND 数据库=ffos_development 命令={:count=>"fs.chunks", :query=>{"files_id"=>BSON::ObjectId('53c985c36d7572b6cd020000')}} 运行时间:0.4970ms 渲染文本模板(0.3ms) 发送数据(0.6ms) 在 23 毫秒内完成 200 次 OK(查看次数:0.6 毫秒)
在 2014-07-18 14:30:18 -0700 开始 GET "/uploads/job/avatar/53c98e5a6d7572b9c6000000/cuben-rustic.jpg" for 127.0.0.1 由 GridfsController#avatar 处理为 JPEG 参数:{"id"=>"53c98e5a6d7572b9c6000000", "filename"=>"cuben-rustic"} MOPED:127.0.0.1:27017 QUERY 数据库=ffos_development 集合=作业选择器={"_id"=>BSON::ObjectId('53c98e5a6d7572b9c6000000')} 标志=[] 限制=0 跳过=0 批处理大小=无字段=无运行时: 0.4900ms MOPED:127.0.0.1:27017 QUERY 数据库=ffos_development 集合=fs.files 选择器={"$query"=>{"filename"=>"uploads/job/avatar/53c98e5a6d7572b9c6000000/cuben-rustic.jpg"}, "$ orderby"=>{"uploadDate"=>-1}} flags=[] limit=-1 skip=0 batch_size=nil fields=nil runtime: 0.5350ms MOPED:127.0.0.1:27017 COMMAND 数据库=ffos_development 命令={:count=>"fs.chunks", :query=>{"files_id"=>BSON::ObjectId('53c98e5a6d7572b9c6020000')}} 运行时间:0.7430ms MOPED: 127.0.0.1:27017 QUERY 数据库=ffos_development 集合=fs.chunks 选择器={"$query"=>{"files_id"=>BSON::ObjectId('53c98e5a6d7572b9c6020000'), "n"=>{"$lt "=>7, "$gte"=>0}}, "$orderby"=>{"n"=>1}} flags=[] limit=0 skip=0 batch_size=nil fields=nil 运行时间:6.5520ms MOPED:127.0.0.1:27017 GET_MORE 数据库=ffos_development 集合=fs.chunks 限制=0 cursor_id=120550877243 运行时间:1.9530ms MOPED:127.0.0.1:27017 COMMAND 数据库=ffos_development 命令={:count=>"fs.chunks", :query=>{"files_id"=>BSON::ObjectId('53c98e5a6d7572b9c6020000')}} 运行时间:0.4840ms 渲染文本模板(0.2ms) 发送数据(0.6ms) 在 19 毫秒内完成 200 次 OK(查看次数:0.5 毫秒)
【问题讨论】:
-
你也可以发布职位模型吗?
-
我已经添加了模型。
-
您面临的具体问题是什么?你收到任何错误吗?如果是这样,请在问题中添加。
-
没有错误。问题是代码没有将“发布”的布尔值从假更改为真。它通过没有问题,但它只是不更新。不知何故,我需要我的控制器将特定工作的布尔值从 false 更新为 true。
-
我的猜测是作业的 ID 可能没有归因于更新?我只是不知道。