在渲染中传递参数 - Rails 3

use*_*798 10 parameters renderpartial ruby-on-rails partial ruby-on-rails-3

我已经看到了几个问题,但一直没能解决它......

我试图在渲染部分时传递参数(类似于domainname.com/memory_books/new?fbookupload=yes)

现在,我使用这一行:

<%= render :partial => '/memory_books/new', :fbookupload => "yes" %>
Run Code Online (Sandbox Code Playgroud)

在部分,我试图通过使用以下方式获取fbookupload的内容:

<%= fbookupload %>
Run Code Online (Sandbox Code Playgroud)

它给出了"未定义的局部变量"错误和

<%= params.inspect %>
Run Code Online (Sandbox Code Playgroud)

它没有显示fbookupload作为参数.

如何沿参数传递部分传递:fbookupload?

谢谢.

更新:

它是否与我在渲染中渲染它的事实有关?

即具有的页面(/ fbookphotos/show)

<%= render :partial => '/memory_books/new', :fbookupload => "yes" %>
Run Code Online (Sandbox Code Playgroud)

由(posts/show)通过另一个页面呈现:

<%= render :partial => '/fbookphotos/show' %>
Run Code Online (Sandbox Code Playgroud)

所以我在渲染中渲染它.

Som*_*ory 17

试试这个:

<%= render :partial => '/memory_books/new', :locals => {:fbookupload => "yes"} %>
Run Code Online (Sandbox Code Playgroud)

  • 得到它,指的是没有局部变量的其他部分因此搞乱了渲染.谢谢! (3认同)

Vad*_*rov 14

把它从后代的评论中删除.这个语法是正确的:

render '/memory_books/new', fbookupload: "yes"
Run Code Online (Sandbox Code Playgroud)

但是,如果存在引用相同的局部而不指定局部变量的引用,例如

render '/memory_books/new'
Run Code Online (Sandbox Code Playgroud)

然后fbookupload变量变得不可用.这同样适用于多个局部变量,例如

render 'my_partial', var1: 'qq', var2: 'qqq'
Run Code Online (Sandbox Code Playgroud)

如果只发生一次将会工作.但是如果在代码中的其他地方有类似的东西

render 'my_partial', var1: 'qq'
Run Code Online (Sandbox Code Playgroud)

然后var2将变得不可用.去搞清楚 ...