小编Bla*_*ell的帖子

Rails - 通用全局功能

我想向我的Ruby on Rails项目(模型,视图和控制器)的所有方面公开一个全局函数.最初,我认为我可以添加:

def self.my_function
    # Code here...
end
Run Code Online (Sandbox Code Playgroud)

到/config/application.rb然后只需调用:

Application::my_function
Run Code Online (Sandbox Code Playgroud)

我申请中的任何地方.但那没用.所以我做了一些谷歌搜索,似乎我可以公开全局函数:

  • 对于/app/controllers/application_controller.rb中的控制器
  • 对于我在/app/helpers/application_helper.rb中的观点
  • 对于/ lib /中的模型

但不是一次性全部.

任何人都可以告诉我,我想要的是可能的吗?

我也希望尽可能避免使用任何包含语句,因为理想情况下这可以从任何地方访问.但是在这一点上,如果我可以在一个中心位置定义该函数的逻辑,即使使用include语句也是可以的.

ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2

5
推荐指数
1
解决办法
2612
查看次数

有没有办法为没有实际支持页面的URL提供网页?

我很想知道是否有办法让PHP页面或其他服务器端逻辑拦截URL,这样如果查询URL"www.mysite.com/about/mission_statement"但我没有在"about/mission_statement"的页面,我可以提供内容,例如"some/other/folder/with/pages".

有人知道这是否可能,或者我是否必须确保我有一个页面可用于我希望处理的每个网址?

html php url webserver

2
推荐指数
1
解决办法
82
查看次数

if(foo!== null)求值为true,即使foo为null

在javascript中,我有一个日志输出选项,允许使用元素/选择器指定输出日志/错误消息的位置.初始化时输出格式如下:

var $messageOutput = options.messageOutputElement ? $(options.messageOutputElement) : null;
Run Code Online (Sandbox Code Playgroud)

稍后通过日志功能使用它:

function outputMessage(msg)
{
    if ($messageOutput !== null)
    {
        messageNum++;
        var $messageOutput = $(options.messageOutputElement);
        var html = $messageOutput.html();
        html += '<b>' + messageNum + '</b><br/>' + msg + '<br/>';
        $messageOutput.html(html);
        $messageOutput.scrollTop($messageOutput[0].scrollHeight);
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是即使$ messageOutput === null,outputMessage()内的if语句也会失败.我已经与Chome的调试器验证了$ messageOutput确实等于null.事实上它无论如何都会进入if语句.

任何人都可以告诉我为什么会发生这种情况?提前感谢您对此事的任何意见.

javascript jquery

0
推荐指数
1
解决办法
384
查看次数