1

我正在尝试将变量传递给部分,以便可以在部分中调用它这就是我渲染部分的方式

 = render :partial => "layouts/reveal_delete", :resource => @schedule

这就是我在部分中调用变量的方式,尽管它似乎不起作用

#RevealDelete.reveal-modal
%a.close-reveal-modal ×
  %h3= "Delete #{@resource}"
  %p Are you sure you want to delete this?
  =link_to "Delete #{@resource}", @resource, :method => :delete, :class => "button close-reveal-modal"
  %a.button.alert.close-reveal-modal Cancel
4

1 回答 1

3

这样称呼它:

= render :partial => "layouts/reveal_delete", :locals => { :resource => @schedule }

然后在部分中,您可以通过引用resource(no @) 来使用它,如下所示:

%h3= "Delete #{resource}"

但是,通常情况下,您会命名局部变量schedule以匹配实例变量,因此:

= render :partial => "layouts/reveal_delete", :locals => { :schedule => @schedule }

然后你可以参考schedule你的部分。

此外,如果您愿意,您可以删除:partial:locals选项键,并使用以下更短的语法:

= render "layouts/reveal_delete", :schedule => @schedule

这里,Rails 假设如果你传入一个字符串作为你的第一个参数,那么第一个参数是你的部分名称,其余的被解释为局部变量赋值。这是讨论此语法的答案

文档中还有更多信息。

于 2013-02-03T05:12:23.163 回答