rails无法将实例变量传递给partial

时间:2014-08-21 18:41:25

标签: ruby-on-rails

我第一次使用Rails 4。文档说您可以将实例变量传递给部分:

<%= render partial: "customer", object: @new_customer %>

所以我尝试做同样的事情。我正在使用fullcalendar引擎,我渲染index.html.erb,在里面我渲染表单部分。我将@record传给了partial。我知道记录不是nil,因为我添加了inspect_record helper来检查@record是否存在:

<%= render "form", :object => @record  %>
<%= inspect_record @record %>

但是,在_form.html.erb partial中,@ record为nil,并且此条件返回false:

<% unless @record.nil? %>

注意我也尝试了这个:

<%= render 'form', locals: {record: @record} %>

我可能做错了什么?

1 个答案:

答案 0 :(得分:1)

如果您正在使用:

<%= render 'form', locals: {record: @record} %>

然后,您需要在record中使用变量@record而不是_form.html.erb作为:

<% unless record.nil? %>

说明

locals: {record: @record}表示,在部分呈现中使用@record可以访问record的值。