我已经从先前的发布中将“已发布”的布尔值初步设置为“ false”,但是在此“预览”屏幕上,我希望允许用户通过单击以将此发布发布来将该值更新为“ true” ,但遇到了困难。
查看-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>
控制器-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”}已完成:127.0.0.1:27017查询数据库= ffos_development集合=作业选择器= {“ _ id” => BSON :: ObjectId('53c985c36d7572b6cd000000')}标志= []限制= 0 skip = 0 batch_size = nil字段= nil运行时:2.8140ms MOPED:127.0.0.1:27017查询数据库= ffos_development集合= fs.files选择器= {“ $ query” => {“ filename” =>“ uploads / job / avatar / 53c985c36d7572b6cd000000 / cuben-rustic.jpg”},“ $ orderby” => {“ uploadDate” =>-1}}标志= []限制= -1跳过= 0 batch_size =无字段=无运行时间:0.4260ms MOPED:127.0.0.1:27017 COMMAND database = ffos_development命令= {:count =>“ fs.chunks”,:query => {“ files_id”=> BSON :: ObjectId('53c985c36d7572b6cd020000')}}运行时:0.3460毫秒MOPED:127.0.0.1:27017查询数据库= ffos_development集合= fs.chunks选择器= {“ $ query” => {“ files_id” => BSON: :ObjectId('53c985c36d7572b6cd020000'),“ n” => {“ $ lt” => 7,“ $ gte” => 0}},“ $ orderby” => {“ n” => 1}}标志= [ ] limit = 0 skip = 0 batch_size = nil字段= nil运行时:8.0450ms MOPED:127.0.0.1:27017 GET_MORE数据库= ffos_development collection = fs.chunks limit = 0 cursor_id = 120760258650运行时:1.8960ms MOPED:127.0.0.1:27017 COMMAND database = ffos_development command = {:count =>“ fs.chunks”,:query => {“ files_id” => BSON :: ObjectId('53c985c36d7572b6cd020000')}}运行时:0.4970ms发送的呈现文本模板(0.3ms)数据(0。6ms)在23ms内完成200 OK(查看:0.6ms)
在2014-07-18 14:30:18 -0700 GridfsController#avatar作为JPEG参数开始为127.0.0.1的GET“ /uploads/job/avatar/53c98e5a6d7572b9c6000000/cuben-rustic.jpg” “ 53c98e5a6d7572b9c6000000”,“文件名” =>“ cuben-rustic”}已完成:127.0.0.1:27017查询数据库= ffos_development集合=工作选择器= {“ _ id” => BSON :: ObjectId('53c98e5a6d7572b9c6000000')}标志= [ ] limit = 0 skip = 0 batch_size = nil字段= nil运行时:0.4900ms MOPED:127.0.0.1:27017 QUERY database = ffos_development collection = fs.files选择器= {“ $ query” => {“ filename” =>“上传/job/avatar/53c98e5a6d7572b9c6000000/cuben-rustic.jpg"},"$orderby"=>{"uploadDate"=>-1}}标志= [] limit = -1 skip = 0 batch_size = nil字段= nil运行时: 0.5350ms工作时间:127.0.0.1:27017 COMMAND database = ffos_development命令= {:: count =>“ fs.chunks”,:query => {“ files_id” => BSON :: ObjectId('53c98e5a6d7572b9c6020000')}}运行时:0.7430ms,MOPED:127.0 .0.1:27017查询数据库= ffos_development集合= fs.chunks选择器= {“ $ query” => {“ files_id” => BSON :: ObjectId('53c98e5a6d7572b9c6020000'),“ n” => {“ $ lt” => 7,“ $ gte” => 0}},“ $ orderby” => {“ n” => 1}}标志= []限制= 0 skip = 0 batch_size = nil字段= nil运行时间:6.5520ms MOPED:127.0 .0.1:27017 GET_MORE数据库= ffos_development集合= fs.chunks限制= 0 cursor_id = 120550877243运行时:1.9530ms操作:127.0.0.1:27017 COMMAND database = ffos_development命令= {:count =>“ fs.chunks”,:query = > {“ files_id” => BSON :: ObjectId('53c98e5a6d7572b9c6020000')}}运行时:0.4840ms渲染的文本模板(0.2ms)发送数据(0.6ms)在19ms内完成200 OK(查看:0.5ms)
我知道了。我不得不将作业ID从预览页面再次传递给控制器。
<%= form_for @job, url: '/jobs/publish/'[email protected] do |f| %>
然后将控制器修改为:
def update
job = Job.find(params[:id])
job.publish = true
job.save!
redirect_to '/jobs'
end
并将路线更改为“补丁”:
patch '/jobs/publish/:id' => 'jobs#update'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句