问题标签 [applicationcontroller]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
811 浏览

ruby-on-rails - Rails:从 ApplicationController 访问资源模型

因此,我在 ApplicationController 中有以下方法,所有控制器都需要访问该方法:

此方法仅更改所有模型都具有的公共属性。我已经测试过,控制器可以很好地访问该方法。问题是如何获取访问该方法的资源的模型名称?

我试过resource, resource_modelresource[:model]它们都返回错误:undefined method 'resource' for #<SomeController:0xb64a1418>

0 投票
1 回答
391 浏览

ruby-on-rails - 在哪里拯救网络连接错误:在模型或控制器中?

我有一个模型需要在创建模型实例之前访问外部网站。错误恢复的最佳实践是什么?请注意,由于我还没有创建模型,所以我在模型中使用了一个类方法。

挽救模型(而不是控制器)中的错误感觉是对的,但是将错误传达给控制器的最佳方式是什么?以下代码的问题是模型返回 nil,因此控制器无法向用户提供任何失败的提示:

你会如何处理这个问题?

(PS:我可以在我的模型代码中调用 MyModel.new(:info => info) 并将其返回给控制器代码。这会让我为模型实例分配一个错误[对吗?],但我不是确定这是公共 API 的一部分。这会起作用吗,如果是,你会怎么写?)

0 投票
1 回答
6623 浏览

ruby-on-rails - Rails:在应用程序控制器中,强制登录,重定向除登录之外的所有请求

我想在我的应用程序控制器中使用一种简单的方法,该方法要求所有用户在继续访问站点的任何部分之前都必须登录。我正在使用设计进行身份验证。

我试过:

这成功地重定向了所有人,但问题是它还阻止了创建新用户会话所需的发布请求。

所以我的问题是,除了登录视图和登录的发布请求之外,您将如何阻止所有请求?

0 投票
1 回答
170 浏览

ruby-on-rails - 应用控制器功能

我有一个带有访客用户功能的应用程序。我试图了解我的 applicationcontroller guest_user 方法是如何被调用的。我以为我需要在应用程序控制器中使用 before_filter 才能调用它们,但是当我注释掉 before_filter 时,这些方法仍在被调用。applicationcontroller 会自动调用这些吗?这似乎是一个简单的问题,但我真的无法在任何地方找到它。我使用本指南来创建我的 guest_user 功能https://github.com/plataformatec/devise/wiki/How-To:-Create-a-guest-user 我使用的是 rails 3.1.1、formtastic 2.0.2 和设计 1.5.1。谢谢!

0 投票
1 回答
656 浏览

ruby-on-rails - Children::ApplicationController 引用的顶级常量 ApplicationController

我正在合并两个应用程序学校和孩子。每个工作都很好,儿童应用程序嵌套在学校应用程序中。他们每个人都有自己的数据库。这是学校应用程序树的一部分:

app/controllers/application_controller.rb
app/controllers/user.rb
....
app/controllers/children/application_controller.rb
app/controllers/children/user.rb ....


并有这些警告:


Children::ApplicationController 引用的顶级常量 ApplicationController Children::
User 引用的顶级常量 User


在 app/controllers/children/application_controller.rb 我有
class Children::ApplicationController < ActionController::Base
在 app/controllers/application_controller.rb 我有
class class ApplicationController < ActionController::Base


未加载嵌套的 ApplicationController。命名空间不起作用?

0 投票
2 回答
433 浏览

sql - Rails - 当用户来到我的页面时,如何仅第一次运行方法

我在数据库中有很多数据,我想从中进行统计。大量数据 = 表中的数千行,我想获得每日、每周、每月(每个月)的统计数据......只是详细的统计数据。

问题是,获取这些数据需要时间(而且不少)。

所以,我认为最快、最清晰、最有效的方法是什么……

我的第一个想法- 当用户来到我的应用程序时,在ApplicationController我将从数据库统计信息中获取的方法中,将我得到的对象保存到会话的变量中,然后我将使用这些变量作为源。然后,当我需要在应用程序的某个地方打印出统计数据时,我只使用这个加载的数据。

问题是:这是个好主意吗?或者,还有更好的方式吗?

0 投票
2 回答
583 浏览

ruby-on-rails-3 - 如何在模型中调用 ApplicationController 辅助方法?回报率

伙计们,我在 ApplicationController 中有一个辅助方法,如下所示

我想在我的模型(比如项目)中调用它,如下所示:

在这里,我得到了类似未定义方法`current_user'的错误 那么,如何在模型中调用这个方法呢?请帮我

0 投票
4 回答
12031 浏览

ruby-on-rails - 如何在 gem 中扩展 ApplicationController?

我想我会想出一个巧妙的方法来在 Rails 3.x gem 中扩展 ApplicationController。

在我的宝石中lib/my_namespace/my_controller.rb,我有:

但是当 Gem 被加载时,app/controllers/application_controller.rb还没有加载,所以它失败了:

作为一种解决方法,我在我的 gem 中将 ApplicationController 定义lib/gem_namespace/application_controller.rb为:

我假设即使我在那里定义了它,它也会在我的 Rails 3 应用程序中重新定义app/controllers/application_controller.rb,这样扩展的应用程序中的控制器和扩展的ApplicationController控制器MyNamespace::MyController都会直接或间接扩展app/controllers/application_controller.rb.

但是,我们注意到加载 gem 后,扩展ApplicationController的控制器无法访问app/controllers/application_controller.rb. 此外,该ApplicationHelper (app/helpers/application_helper.rb)模块不再被其他辅助模块加载。

我如何ApplicationController在我的 gem 中的控制器中进行扩展,以便定义 abefore_filterafter_filterto 并使用它initialize来访问类的名称以确定关联模型的类,然后它可以在其方法中存储和使用该类?

2012 年 10 月 22 日更新

这是我想出的:

lib/your_gem_name/railtie.rb

并在lib/your_gem_name/controller.rb

0 投票
1 回答
198 浏览

ruby-on-rails - Rails: side effect of including the same filter twice

I have a gem I'm developing that is based around using filters on ApplicationController. It's basically for logging, and one of the modules defines an around filter like so:

It happens to be an around filter where I deal with exception logging, but my question would apply for any filter.

So it's supposed to be used like this

So what I'm worried about is if someone does:

I don't want to execute do_a_bunch_of_logging_stuff twice. So first

1)If do_a_bunch_of_logging_stuff is included twice, will rails apply the filter twice?

2)Is it my responsibility to protect the user from doing this? I could do so with a class variable, something like:

This variable is not thread safe so it's something that I'd want to be careful about putting in. But I don't want to write a library that can be easily broken. Thanks.

0 投票
1 回答
330 浏览

ruby-on-rails - 未初始化的常量 ApplicationController::Mailer

当我在开发模式下运行我的 rails 应用程序时,它运行良好。当我在生产模式下运行它时,它不会启动。相反,它给了我:uninitialized constant ApplicationController::Mailer。此应用程序已从 rails 2 应用程序升级,所以有什么我可能会丢失或任何其他想法为什么它不会工作?