我试图从编辑表单页面转到显示更新信息的预览页面。目前,我向update
添加了controller
方法,该方法会重定向(提交表单时)到预览页面。但是在预览页面上,没有更新任何内容,数据也没有保存到数据库中。
jobs_controller.rb
def update
@job = Job.find(params[:id])
redirect_to preview_path(id: @job.id), notice: 'Job was successfully updated.'
end
jobs / preview.html.erb
<span class="col-md-12 col-centered">
<%= link_to 'Edit', edit_job_path(@job), :class => "jobBack-btn" %>
<%= link_to "Publish",'#', id:'link_id', class: "btn" %>
</span>
如果我删除了update
方法,则编辑表单会保存并重定向到show
页面(默认情况下)。我必须转到预览页面才能看到更改。我不确定我在update
方法中缺少什么来保存表单数据。
答案 0 :(得分:1)
您是否尝试过使用update
方法实际更新对象?
def update
@job = Job.find(params[:id])
if @job.update(update_params)
redirect_to preview_path(id: @job.id), notice: 'Job was successfully updated.'
else
redirect_to somewhere_path, notice: @job.errors.full_messages.join "\n"
end
end
private
def update_params
params.require(:job).permit( ... )
end
现在看起来你只是找工作然后重定向。
答案 1 :(得分:0)
我更新了我的代码,现在由于评论而成功更新和重定向。我使用的是旧版本的Rails(Rails 4.0.8)。
jobs_controller.rb
def update
@job = Job.find(params[:id])
if @job.update(params.require('job'))
redirect_to preview_path(id: @job.id), notice: 'Job was successfully updated.'
else
redirect_to '/jobs'
end
end