Ruby on rails 局部变量未传递给局部变量
以下是我的视图代码,其中渲染了部分:Ruby on rails 局部变量未传递给局部变量,ruby-on-rails,Ruby On Rails,以下是我的视图代码,其中渲染了部分: <%= render partial: 'foo' , :locals => { :user => @current_user } %> {:user=>@current_user}%> 这是我的“foo”部分: <%= simple_form_for :foobar %> <%= user.id %> .... <% end %> .... 但我遇到了这个错误: undefined l
<%= render partial: 'foo' , :locals => { :user => @current_user } %>
{:user=>@current_user}%>
这是我的“foo”部分:
<%= simple_form_for :foobar %>
<%= user.id %>
....
<% end %>
....
但我遇到了这个错误:
undefined local variable or method `user' for #<#<Class:0xac52574>:0xb58178dc>
未定义的局部变量或方法“user”#
注意:在rails 4上,ruby 1.9.3的
@变量在操作、视图和部分之间共享,因此您应该能够在部分中直接使用
)Yoshiiji先生的答案是正确的。但我想知道为什么需要@current\u用户变量。以前从没见过。。我认为直接返回当前用户的方法会更方便。我说得对吗?:-)@Mattherick是对的,@Pooya您应该创建一个helper方法current\u user
,返回当前登录的用户。(大多数登录gem都有这个current\u user()
方法,如果你有自己的登录系统,你可以编写自己的:)试试这个:@current\u user}%>
甚至@current\u user%>
@MrYoshiji我只是在测试通过本地人,我很熟悉designe!没有一个解决方案有效,仍然会出现错误!也许这是一种rails 4错误!