1

私のレール アプリには、has_many 取引のある House モデルがあります。私は家のショーページにこれらの取引を表示しています. フォームを送信すると、すべてが正常に機能します。ただし、Deal モデルに検証エラーがある場合、私のシステムは正常に動作していません。取引モデルに検証エラーがある場合。

私のroutes.rbには

resources :houses do
 resources :deals
end

deal_controller.rbには、次の create メソッドがあります

def create 
     @house = House.find_by_slug(params[:house_id])
    @deal = @house.deals.build(params[:deal])
    @deal.user = current_user

    respond_to do |format|
      if @deal.save
        format.html { redirect_to @house, :notice => 'Your offer has been created     successfully'  }
        format.json { render json: @house, status: :created, location: @house }
      else
        format.html { redirect_to @house, :alert => 'Oops, something went wrong. Please     try again' }
        format.json { render json: @house.errors, status: :unprocessable_entity }

      end
    end  
end

redirect_toは正常に動作していますが、検証フォーム モデルに失敗したときにエラー メッセージをカスタマイズできません。

@deal.save が失敗したときにこのメソッドをチェックしました。

render :template => 'houses/show'

このメソッドは、モデル検証の失敗時に Rails でコメント コントローラーをレンダリングする場所で見たことがありますか?

フォームには次のアクションがあるため、単に家をレンダリングしたいのですが、うまくいきません。

/houses/name-of-house/deals

/houses/name-of-house/ にリダイレクトしない

ハウス コントローラーからのアクション ショーで、フォーム ディール (子) からエラー検証を取得するにはどうすればよいですか?

4

1 に答える 1

0

私も同じ問題を抱えてる。これは、モデル検証の失敗時に Rails でコメントコントローラーをレンダリングする場所の複製だと思いますか? - 代わりに自分の応答をそこに追加しています。

于 2012-01-02T23:22:13.730 に答える