我在这件事上见过几个问题,但一直没能解决.
在呈现部分(类似于domainname.com/memory_books/new?fbookupload=yes) )时,我试图传递一个参数
现在,我用这句话:
<%= render :partial => '/memory_books/new', :fbookupload => "yes" %>在部分内容中,我试图通过以下方式获取using上载的内容:
<%= fbookupload %>提供“未定义局部变量”错误,并且
<%= params.inspect %>它不将fbookupload显示为参数。
怎样才能让部分传递的参数:fbookupload?
谢谢。
更新:
这和我在渲染中呈现的事实有关系吗?
即页面(/fbook相册/显示)
<%= render :partial => '/memory_books/new', :fbookupload => "yes" %>正在由另一个页面(posts/show)通过以下方式呈现:
<%= render :partial => '/fbookphotos/show' %>所以我在渲染中呈现这个。
发布于 2012-07-01 16:26:35
试试这个:
<%= render :partial => '/memory_books/new', :locals => {:fbookupload => "yes"} %>发布于 2013-11-17 14:11:42
把它从后人的评论中拿出来。这种语法是正确的:
render '/memory_books/new', fbookupload: "yes"但是,如果引用不指定局部变量,则表示相同的部分,例如
render '/memory_books/new'然后fbookupload变量变得不可用。这同样适用于多个局部变量。
render 'my_partial', var1: 'qq', var2: 'qqq'如果只发生一次就会起作用。但是如果代码中有类似的东西
render 'my_partial', var1: 'qq'然后,var2将变得不可用。去想想..。
发布于 2012-07-01 16:42:42
按你的方式去做:
主要观点是:
<% fbookupload = "yes" %>
<%= render :partial => '/memory_books/new', :locals => {:fbookupload => fbookupload} %>在部分:
<%= fbookupload %>第二种选择:
理想情况下,在控制器中,或者在视图中,定义一个实例变量:@fbookupload = "yes"。那么它就随处可见了。然后部分将是:<%= @fbookupload %>
https://stackoverflow.com/questions/11283675
复制相似问题