0

我有一个工作岗位模型。当我创建新的工作岗位时,我将类别作为参数传递,如下所示:

new_jobplacement_path(:category => params[:category])

所以网址看起来像这样:

http://localhost:3000/jobplacements/new?category=Corporate

但是当验证失败时 url 更改为:

http://localhost:3000/jobplacements

为什么会发生这种情况?params 类别在哪里丢失?当验证失败时我如何传递这个 params 类别?

我的创建操作代码是:

def create
        @jobplacement = Jobplacement.new(params[:jobplacement])
        if @jobplacement.save
        redirect_to(jobplacement_url(@jobplacement.id,:category => @jobplacement.category), :notice => 'Job post was successfully created.') 
    else
        render :action => "new" 
    end
    end
4

2 回答 2

0

解决了它...在 form.html.haml 中添加了 :url => { :action => :create, :category => params[:category]}:

= form_for(@jobplacement,:url => { :action => :create, :category => params[:category]},:validate => true, :html => { :class => "form grid_6", :id => "form" }) do |f|

现在,当验证失败时,我的 url 更改为:

http://localhost:3000/jobplacements?category=Corporate
于 2012-06-01T05:46:41.493 回答
0

这是因为你的create行动路线是

PUT http://localhost:3000/jobplacements

当验证失败时,页面不会被重定向,所以 url 会保留。

无论如何,这不会造成问题。

于 2012-06-01T05:18:19.843 回答