gpt4 book ai didi

ruby-on-rails-3 - 使所有 ActionViewer 辅助方法在模块中可用

转载 作者:行者123 更新时间:2023-12-04 06:53:38 25 4
gpt4 key购买 nike

我正在使用 ruby​​ on rails 3。我有一个名为 Content 的模型.在 Controller 中,我提取了一些变量并将它们传递给查看器。在查看器中,我想使用我自制的函数,这样我就不会在查看器中有太多的逻辑和代码。我在 ContentsHelper 中定义了这些函数模块。

我在 ContentsHelper 模块中定义的函数正在使用 ActionViewer 辅助函数,但是这些在 ContentsHelper 模块中不可用。例如,我得到 NoMethodError: undefined method content_tag' for #<Content:0x1025b9458>错误。

如何使所有 ActionViewer 辅助函数可用?

新手。

根据 Tim 的建议:

module ContentsHelper
include ActionView::Helpers
def bla
content_tag(:h2, self.title)
end

我可以将 bla 方法运行为 Content.bla在控制台中。这太完美了!

但是当我替换 content_tag 时与 image_tag ,然后我遇到了麻烦并得到了这个错误:

NoMethodError: undefined method `config'
from /Users/sonat/.rvm/gems/ruby-1.8.7-p334/gems/activemodel-3.0.0/lib/active_model/attribute_methods.rb:364:in `method_missing'
from /Users/sonat/.rvm/gems/ruby-1.8.7-p334/gems/activerecord-3.0.0/lib/active_record/attribute_methods.rb:46:in `method_missing'
from /Users/sonat/.rvm/gems/ruby-1.8.7-p334/gems/activerecord-3.0.0/lib/active_record/attribute_methods.rb:44:in `send'

我可以看到负责 image_tag 方法的模块缺少“某些东西”。如果你们告诉我查找缺失内容的一般方法以及我如何解决问题,我将不胜感激。

最佳答案

看起来您正在尝试做一些奇怪的事情,比如在您的模型 中而不是在您的 View 中使用辅助方法。辅助方法适用于 View ,不适用于模型。

已添加

Tim 问我是否可以提供一些指向其他资源的链接,但实际上这是非常基本的东西,我不知道有什么可以处理的。大多数教程处理不寻常的事情,例如在外部 View 中使用助手。

因此,这里有一些代码:

app/helpers/contents_helper.rb

module ContentsHelper
def foo
content_tag :p, "Foo"
end
end

app/views/contents/index.html.erb

<h1>Listing Contents</h1>

<%= foo %>

转到/contents URL 时的 HTML 输出

<h1>Listing Contents</h1>

<p>Foo</p>

这确实很难。

关于ruby-on-rails-3 - 使所有 ActionViewer 辅助方法在模块中可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6267059/

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