问题标签 [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.
ruby-on-rails - Rails:从 ApplicationController 访问资源模型
因此,我在 ApplicationController 中有以下方法,所有控制器都需要访问该方法:
此方法仅更改所有模型都具有的公共属性。我已经测试过,控制器可以很好地访问该方法。问题是如何获取访问该方法的资源的模型名称?
我试过resource
, resource_model
,resource[:model]
它们都返回错误:undefined method 'resource' for #<SomeController:0xb64a1418>
ruby-on-rails - 在哪里拯救网络连接错误:在模型或控制器中?
我有一个模型需要在创建模型实例之前访问外部网站。错误恢复的最佳实践是什么?请注意,由于我还没有创建模型,所以我在模型中使用了一个类方法。
挽救模型(而不是控制器)中的错误感觉是对的,但是将错误传达给控制器的最佳方式是什么?以下代码的问题是模型返回 nil,因此控制器无法向用户提供任何失败的提示:
你会如何处理这个问题?
(PS:我可以在我的模型代码中调用 MyModel.new(:info => info) 并将其返回给控制器代码。这会让我为模型实例分配一个错误[对吗?],但我不是确定这是公共 API 的一部分。这会起作用吗,如果是,你会怎么写?)
ruby-on-rails - Rails:在应用程序控制器中,强制登录,重定向除登录之外的所有请求
我想在我的应用程序控制器中使用一种简单的方法,该方法要求所有用户在继续访问站点的任何部分之前都必须登录。我正在使用设计进行身份验证。
我试过:
这成功地重定向了所有人,但问题是它还阻止了创建新用户会话所需的发布请求。
所以我的问题是,除了登录视图和登录的发布请求之外,您将如何阻止所有请求?
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。谢谢!
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。命名空间不起作用?
sql - Rails - 当用户来到我的页面时,如何仅第一次运行方法
我在数据库中有很多数据,我想从中进行统计。大量数据 = 表中的数千行,我想获得每日、每周、每月(每个月)的统计数据......只是详细的统计数据。
问题是,获取这些数据需要时间(而且不少)。
所以,我认为最快、最清晰、最有效的方法是什么……
我的第一个想法- 当用户来到我的应用程序时,在ApplicationController
我将从数据库统计信息中获取的方法中,将我得到的对象保存到会话的变量中,然后我将使用这些变量作为源。然后,当我需要在应用程序的某个地方打印出统计数据时,我只使用这个加载的数据。
问题是:这是个好主意吗?或者,还有更好的方式吗?
ruby-on-rails-3 - 如何在模型中调用 ApplicationController 辅助方法?回报率
伙计们,我在 ApplicationController 中有一个辅助方法,如下所示
我想在我的模型(比如项目)中调用它,如下所示:
在这里,我得到了类似未定义方法`current_user'的错误 那么,如何在模型中调用这个方法呢?请帮我
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_filter
和after_filter
to 并使用它initialize
来访问类的名称以确定关联模型的类,然后它可以在其方法中存储和使用该类?
2012 年 10 月 22 日更新:
这是我想出的:
在lib/your_gem_name/railtie.rb
:
并在lib/your_gem_name/controller.rb
:
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.
ruby-on-rails - 未初始化的常量 ApplicationController::Mailer
当我在开发模式下运行我的 rails 应用程序时,它运行良好。当我在生产模式下运行它时,它不会启动。相反,它给了我:uninitialized constant ApplicationController::Mailer
。此应用程序已从 rails 2 应用程序升级,所以有什么我可能会丢失或任何其他想法为什么它不会工作?