jjzjj

controller

全部标签

ruby - 多个 Controller 之间共享的 before_filter 放在哪里

我有多个Controller,它们都使用相同的before_filter。为了让事情保持干燥,这个方法应该放在哪里以便所有Controller都可以使用它?模块似乎不是正确的位置,但我不确定为什么。我不能将它放在基类中,因为Controller已经有不同的父类(superclass)。 最佳答案 如何将您的before_filter和方法放在一个模块中,并将其包含在每个Controller中。我会将此文件放在lib文件夹中。moduleMyFunctionsdefself.included(base)base.before_filt

ruby - 如何将 before_filter 应用于 Rails 3.2.11 中每个 Controller 的每个操作?

我想验证用户是否在对服务器的每个请求中登录。类似于::before_filterverify_logged_in我应该把before_filter放在哪里,以便它适用于所有Controller操作和所有请求? 最佳答案 为确保过滤器适用于所有操作,将其放在application_controller.rb中。 关于ruby-如何将before_filter应用于Rails3.2.11中每个Controller的每个操作?,我们在StackOverflow上找到一个类似的问题:

ruby-on-rails - Controller 所有 Action 的相同实例变量

我有一个RailsController,其中定义了两个操作:index和show。我在index操作中定义了一个实例变量。代码如下:defindex@some_instance_variable=fooenddefshow#somecodeend如何访问show.html.erb模板中的@some_instance_variable? 最佳答案 您可以使用前置过滤器为多个操作定义实例变量,例如:classFooController[:index,:show]defcommon_content@some_instance_variab

ruby-on-rails - 测试包含 ActionController::Live 的 Controller

我有一个包含RailsActionController::Live模块的Controller。我正在显示一个日志文件的内容,它正在使用FileTailgem读取,并使用ActionController::Live中的SSE像这样:classLogsControllereRails.logger.info"ErrorMessage::#{e.message}"ensuresse.closeendend我想使用Rspec测试live操作。这是我目前拥有的:before{get:live}it{expect(response.headers['Content-Type']).toeq("te

ruby-on-rails - RSpec 故事和规范 : When to use what?

所以我想开始使用RSpec故事,但我不确定编写Controller、模型和View规范的位置。例如,您有“登录”故事和“用户提供错误的密码”场景,难道您最终测试的不是与Controller/模型规范相同的东西(response.shouldrender...,user.shouldbe_nil等)所以我的问题是:对于那些习惯于使用RoR进行bdd(或故事dd)的人,您是否仍然编写模型/Controller规范?如果是这样,您遵循的工作流程如何(“第一个故事,然后缩小到特定规范”)? 最佳答案 如果您现在开始使用故事(而不是拥有大量遗

ruby-on-rails - 你如何阅读现有的 Rails 项目?

当您开始处理现有的Rails项目时,您采取了哪些步骤来理解代码?你从哪里开始?在深入了解Controller、模型、助手和View之前,您使用什么来获得高级View?您是否有任何特定的技术、技巧或工具可以帮助加快该过程?请不要回复“学习Rails和Ruby”(就像问这个问题的lastguy的回复之一——他的问题也没有得到太多回复,所以我想我会再问一次并提示多一点)。我对自己的代码很满意。它正在对其他人进行分类,这让我很头疼,需要很长时间才能理解。 最佳答案 看看模型。如果应用程序编写得很好,这应该为您提供其域模型的图片,这是有趣的逻

ruby-on-rails - 为什么在 Controller 被子类化时 Rails before_filter 被调用两次?

我在使用Rails2.3.5,我遇到了这个问题:classBaseController[:index]endclassChildController[:index,:show,:other,:actions]end问题是在ChildController上,过滤器之前的:foo被调用了两次。我已经尝试了很多解决这个问题的方法。如果我不在子项中包含:index操作,则永远不会为该操作调用它。我找到的解决方案有效,但我认为它非常难看skip_before_filter:foobefore_filter:foo,:only=>[:index,:show,:other,:actions]有没有更

ruby-on-rails - 从 gem 添加 Rails Controller

我正在开发一个专门用于Rails应用程序的ruby​​gem,我想从我的gem添加一个Controller,以便它可以在Rails应用程序上使用(类似于devise对RegistrationsController、SessionsController所做的)。在gem方面:我试过添加以下内容应用程序/Controller/samples_controller.rbclassSamplesController然后在我的rails路线上将其添加为:match'route'=>'samples#index'或resources:samples很明显我在那里出了点问题,但我不知道是什么?我是否

ruby-on-rails - 为 rails 中的特定 Controller 跳过/禁用 force_ssl

除了message#newController之外,我需要在我的应用程序中的所有路由上强制使用SSL。在config/environments/production.rb中,我有:config.force_ssl=true现在所有路由都重定向到https,现在我想为message#newController禁用它。有谁知道如何为Rails4+应用程序中的特定Controller禁用强制SSL? 最佳答案 根据documentation以下应该有效(但仅适用于rails>5版本):config.ssl_options={redirec

ruby-on-rails - 在 Ruby 中返回 true 或错误消息

我想知道编写这样的函数是好的还是坏的形式。deftest(x)ifx==1returntrueelsereturn"Error:xisnotequaltoone."endend然后为了使用它,我们做这样的事情:result=test(1)ifresult!=trueputsresultendresult=test(2)ifresult!=trueputsresultend它只显示第二次调用测试的错误消息。我正在考虑这样做,因为在一个Rails项目中,我在我的Controller代码中工作,我调用模型的实例方法,如果出现问题,我希望模型将错误消息返回给Controller和Control