的Rails:PARAMS在format.html {渲染...}

我试图通过PARAMS在控制器方法的format.html这样的:的Rails:PARAMS在format.html {渲染...}

def create 

@doc = Doc.new(params[:doc])

respond_to do |format|

if @doc.save

format.html { redirect_to share_url(@doc.user.ftp, @doc) }

else

format.html { render "new", :locals => { :template => @doc.template_id } }

end

end

end

我得到它告诉我,我是一个没有方法错误M在局部变量发出正确的参数:template

local_assigns {:template=>4} 

有我丢失的东西要得到那个工作?它应该重定向到doc#new动作,但它会转到doc#index。有任何想法吗?

回答:

使用控制器内的语法如下:

render "new", :locals => { :template => @doc.template_id } 

意味着你渲染new.html.erb模板,而不是局部的。您无法将局部变量传递给非局部视图。你应该做的是打电话render "new",在你需要的时候参照@doc

以上是 的Rails:PARAMS在format.html {渲染...} 的全部内容, 来源链接: utcz.com/qa/261340.html

回到顶部