作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个可以在我的整个应用程序中使用的部分。当我尝试加载页面时出现此错误:
NameError in Home#index
Showing /home/ubuntu/workspace/app/views/shared/_avatar.html.erb where line #3 raised:
undefined local variable or method user for #<#<Class:0x007f9ce4f05ef0>:0x007f9ce5b9c920>
Extracted source (around line #3):
<div class="avatar-circle">
<span class="initials">
<%= user.full_name[0..1].upcase %>
</span>
</div>
这是我的代码:应用程序/views/home/index.html.erb:
<%= show_avatar(post.user) %>
app/controllers/concerns/users_helper.rb:
def show_avatar(user)
if user.avatar?
image_tag(user.avatar, class: 'avatar-circle')
else
render partial: 'shared/avatar', :user => user
end
end
app/views/shared/_avatar.html.erb:
<%= user.full_name[0..1].upcase %>
应用/模型/user.rb:
def full_name
return "#{first_name} #{last_name}".strip if (first_name || last_name)
end
如果有人能对此有所了解,我将不胜感激,非常感谢。
最佳答案
如何真正做到这样的事情:
您在 Controller 的操作中创建实例变量。像这样
class UsersController < ApplicationController
def show
@user = User.find_by(id: 1)
end
end
@user
变量现在可以在 View users/show.html.erb
您可以从您的 View 中渲染某些部分并将 @user
变量传递给它:
<%= render partial: 'partial_name', locals: {user: @user}%>
关于ruby-on-rails - 如何将实例发送到 Rails 中的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41751120/
我是一名优秀的程序员,十分优秀!