相关疑难解决方法(0)

如何将验证错误消息传递给另一个控制器中的方法?

我刚刚开始使用rails 3应用程序,它具有父模型和子模型(父has_many:children).

我正在尝试进行设置,以便在创建新父级之后,用户将被带到该父级的显示操作(/ parent/id).在这个视图中,我包括部分显示任何孩子和表单来创建一个新孩子.创建新子项后,用户将被重定向到将显示新子项的父项的show操作.这一切都按预期工作.

但是,如果我尝试验证新子窗体中的字段,则出现的任何错误消息都不会出现在窗体中(视图中的必要行是正确的 - 从生成的脚手架代码中剪切并粘贴).有没有办法将孩子的这些错误消息成功传递给父节目动作?

以下是相关代码的片段;

从我的父控制器:

def show
  @parent = Parent.find(params[:id])
  @child = @parent.children.new

  respond_to do |format|
    format.html # show.html.erb
    format.xml  { render :xml => @admission }
  end
end
Run Code Online (Sandbox Code Playgroud)

从我的孩子控制器:

def create
  @child = Child.new(params[:parent])

  respond_to do |format|
    if @child.save
      format.html { redirect_to(parent_path(params[:child][:parent_id]), :notice => 'Child was successfully created.') }
               #This works as intended
      format.xml  { render :xml => @child, :status => :created, :location => @child }
    else
      format.html { redirect_to parent_path(params[:child][:patient_id]) }
               #This redirects where I …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails

7
推荐指数
1
解决办法
4968
查看次数

标签 统计

ruby-on-rails ×1