gpt4 book ai didi

ruby - Espresso Framework - 一致的跨 Controller 渲染?

转载 作者:太空宇宙 更新时间:2023-11-03 16:06:07 27 4
gpt4 key购买 nike

我有一个基本的 CMS,我在其中大量使用跨 Controller 渲染。

class Index < E
map '/'

# some actions

def ad
@steroids = render_p('anabolic-steroids/ads/left-banner')
# some logic
end
end

类固醇类:

class Steroids < E
map 'anabolic-steroids'

# actions
end

查看文件夹:

view/
|
- anabolic-steroids/
|
- ads/
|
- left-banner.erb
# other templates

一切正常,但现在客户想要 anabolic-steroids URL重命名为 steroids

为了完成这项工作,我重新映射了 Steroids 类:

map :steroids

并将 view/anabolic-steroids/ 文件夹重命名为 view/steroids/

Steroids Controller 与新 URL 配合良好。

但是现在所有其他渲染类固醇广告的 Controller 都坏了:(

而且我必须找到所有使用它的地方并重命名

render_p('anabolic-steroids/ads/left-banner')

render_p('steroids/ads/left-banner')

奇怪!

我还有很多其他地方正在使用这样的跨 Controller 渲染。

任何避免无用重构的方法这种无辜的重命名请求何时来自客户?

最佳答案

对于一个微不足道的问题的描述相当长 :)(开玩笑,抱歉,这是个好问题)

解决方案很简单,真的很简单 - 永远不要在可以使用其他东西的地方使用字符串......

似乎您在文档中错过了这一点 - “要呈现内部 Controller 的模板,将 Controller 作为第一个参数传递,将模板作为第二个参数传递。”

参见 official docs here

因此,为了解决任何重命名问题,请使用这样的跨 Controller 渲染:

render_p(Steroids, 'ads/left-banner')

现在您不必担心“无辜的重命名请求”:)

关于ruby - Espresso Framework - 一致的跨 Controller 渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13554755/

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