自定义验证错误形成其他父控制器rails 3.1内的控制器

时间:2011-10-20 15:21:03

标签: controller ruby-on-rails-3.1 custom-errors

我在我的rails应用程序中有一个House模型,其中包含了多个交易。我正在房子的展示页面上展示这些优惠。当我提交表单时,如果使用redirect_to,一切正常;但是,如果交易模型上存在验证错误,那么我的系统无法正常工作。如果交易模型中存在验证错误。

routes.rb 中,我有

resources :houses do
 resources :deals
end

deals_controller.rb 中,我有下一个创建方法:

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'

我在Where to render comments controller in Rails on model validations failure?

中看到的这种方法

我只想渲染房子而不是为我工作,因为表格有一个动作:

/房屋/名称的内部/优惠

并且不会重定向到 / houses / name-of-house /

如何从房屋管理员的动作节目中获取表格交易(儿童)的错误验证?

1 个答案:

答案 0 :(得分:0)

我有同样的问题。我认为这是Where to render comments controller in Rails on model validations failure?的副本 - 我在那里添加了我自己的回复。