我有两个模型,一个慈善模型和一个里程碑模型。慈善机构有很多里程碑。
为了让界面更简单,我将小里程碑表单放在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
,但由于这是跨越控制器,所以它不起作用。想法?
答案 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