首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在模型中使用image_url助手

在模型中使用image_url助手
EN

Stack Overflow用户
提问于 2018-09-06 01:10:19
回答 3查看 536关注 0票数 0

我正尝试在我的模型中使用image_url助手。我在模型上也有一个image_url属性(不能更改)。当我调用image_url时,助手方法似乎正在调用模型上的方法。我得到错误wrong number of arguments (given 1, expected 0)

代码语言:javascript
运行
复制
 def public_image
    if self.avatar && photo_public?
      self.avatar.remote_url
    else
      image_url '/client/src/assets/images/icons/anon-small.svg'
    end
  end
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-09-06 01:17:04

image_url是一个视图帮助器,不应该在模型内部使用它,您应该将该逻辑移动到视图的帮助器中

代码语言:javascript
运行
复制
#application_helper.rb
def public_image(user)
  if user.avatar && user.photo_public?
    user.avatar.remote_url
  else
    image_url '/client/src/assets/images/icons/anon-small.svg'
  end
end

在视图中,将user.public_image更改为public_image(user)

票数 5
EN

Stack Overflow用户

发布于 2018-09-06 01:26:11

我同意arieljuod的观点,这是一个视图问题。然而,如果一个脏的实现确实需要它,那么可以使用Object.new.extend(ActionView::Helpers::AssetUrlHelper).image_url('foo')

票数 0
EN

Stack Overflow用户

发布于 2018-09-06 01:28:03

是的,这是非常正确的,你不能调用那个作用域!这不是一个模型的方法。这是一个ActionView帮助器方法。https://apidock.com/rails/ActionView/Helpers/AssetUrlHelper/image_url

就我所见,这不是拥有这种逻辑的正确地方。考虑将其放在decorator中以抽象此非业务逻辑。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52190310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档