渲染一个孩子&父对象到指定的模板

时间:2012-03-15 03:01:50

标签: ruby-on-rails

我有两个模型,一个慈善模型和一个里程碑模型。慈善机构有很多里程碑。

为了让界面更简单,我将小里程碑表单放在Charity控制器的show view上。这很好,但是当慈善模式无法保存时,我如何返回并使用show动作渲染这些对象,以便我得到无效状态?

这是我在里程碑控制器上的创建操作。目前我收到nil的model_name错误,这意味着可能没有设置实例变量。

def create
  @charity = Charity.find(params[:charity_id])
  @charity.milestones.build(params[:milestone])
  if @charity.save
    redirect_to @charity, notice: "Milestone added"
  else
    render 'charities/show'
  end
end

我知道你通常可以只做render action :new,但由于这是跨越控制器,所以它不起作用。想法?

1 个答案:

答案 0 :(得分:0)

忘记设置@milestone实例变量。愚蠢的错误。希望这有助于有人在路上。

def create
  @charity = Charity.find(params[:charity_id])
  @milestone = @charity.milestones.build(params[:milestone])    
  if @charity.save
    redirect_to @charity, notice: "Milestone added"
  else
    render 'charities/show' 
  end
end