gpt4 book ai didi

ruby-on-rails - 如何将实例发送到 Rails 中的部分

转载 作者:行者123 更新时间:2023-12-01 12:23:51 25 4
gpt4 key购买 nike

我正在尝试创建一个可以在我的整个应用程序中使用的部分。当我尝试加载页面时出现此错误:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com