0

私はジョブプレースメントモデルを持っています。新しいジョブプレースメントを作成するとき、次のようなパラメータとしてカテゴリを渡します。

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

したがって、URLは次のようになります。

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 に答える