首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Rails/RSpec:'get'到另一个控制器

在Ruby on Rails中,当你需要从一个控制器的方法中调用另一个控制器的方法时,这通常意味着你的应用程序架构需要重新考虑。然而,你仍然可以使用get方法来实现这个需求,但是这并不是一种推荐的做法。

在RSpec测试框架中,get方法用于向应用程序发送HTTP GET请求。你可以使用get方法来测试控制器中的indexshow等方法。例如,如果你有一个名为posts的控制器,你可以使用以下代码来测试index方法:

代码语言:ruby
复制
RSpec.describe PostsController, type: :controller do
  describe "GET #index" do
    it "returns http success" do
      get :index
      expect(response).to have_http_status(:success)
    end
  end
end

然而,在这种情况下,你不能直接使用get方法从一个控制器调用另一个控制器的方法。你应该考虑使用其他方法,例如将共享的代码提取到一个模块或类中,并在需要的地方包含或继承该模块或类。这将使你的代码更加模块化和可维护。

总之,在Rails和RSpec中,你不能直接使用get方法从一个控制器调用另一个控制器的方法。你应该考虑重新设计你的应用程序架构,以遵循良好的编程实践和设计原则。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Rails 3 Script 改版

0.4.0) login_generator(1.2.2) 邮件(2.2.19) 哑剧类型(1.16) 最小测试(1.6.0) 蒙哥(1.3.1) 蒙古包(2.0.2) mongoid-rspec...0.6.14) rack-openid(1.3.1) 机架测试(0.5.7) 导轨(3.0.7) (3.0.7) 耙(0.9.0,0.8.7) rdoc(2.5.8) 其余客户端(1.6.1) rspec...(2.6.0) rspec核心(2.6.2) rspec-期望(2.6.0) rspec-mocks(2.6.0) rspec-rails(2.6.0) 红宝石fcgi(0.8.9) 红宝石...用法:导轨COMMAND [ARGS] 最常见的rails命令是: 生成生成新代码(快捷别名: “ g”) console启动Rails控制台(快捷别名: “ c”) 服务器启动Rails.../script/rails生成控制器帐户 创建应用程序/控制器/account_controller.rb 调用erb 创建应用程序/视图/帐户

7.1K20
  • 使用 YAML 文件配置 Jenkins 流水线

    考虑这些问题,我们开始深入研究最新版的 Jenkins,看看如何提升我们的 CI 服务。我们需要构建一个新的CI服务,至少要解决以下问题: * 支持 Docker 构建。...我们可以将构建配置写入一个被检入代码库的文件中,并且允许任务有权限访问的人修改。.../analysis --minimum-score 80 --no-browser setup_db: - bundle exec rails db:create - bundle exec rails...共享库是用 Groovy 编写的,可以导入流水线中,并在必要时执行。 如果你细心观察以下 Jenkinsfile,你会看到代码是一个接收闭包的方法调用链,我们执行另一个方法将一个新的闭包传递给它。.../analysis –minimum-score 80 –no-browser setup_db: - bundle exec rails db:create - bundle exec rails db

    4.8K40

    “小众”之美——Ruby在QA自动化中的应用

    基于此,DHH放弃了PHP而使用Ruby开发出了Rails,DSL也因此成为Ruby开发的框架中非常普通的特性,而这对于很多主流语言都是种奢望。 对于测试来说足够充足的社区资源。...在这种情况下,考虑把数据序列化YML中,启动执行时接口测试类自动与测试数据进行绑定。...通过ci_reporter,可以方便地将Rspec的报告格式转为JUnit的XML格式,在Jenkins中做对应的展示。 ?...开发这样一个小系统,技术方案选择上考虑主要是效率和学习成本,符合敏捷开发的特点,基于这些因素,应用了被称为“Web开发的最佳实践”的Rails框架。...应用Rails,团队较快进入了可以通过数据进行质量分析的初级阶段,当然还有很长的路要走,在从01的这个过程中,还是较多地体会到了敏捷开发的特性,也充分感受到了DRY理念。

    1.8K30

    DHH:2017年Rails 框架还值得学习吗?

    今天, 大多数框架仅停留在给用户提供另一个点菜单, 另一个构建系统, 或者另一个视图库, 再或者另一个 ORM. 很少有框架是提供完整解决方案的....笔者注: 可以 DHH 博客里了解一二. 如果读过这些资料之后, 你应该能准确判断出 Rails 是否适合你了....如果你还不能意识其中的争议, 或者你只是不喜欢这些争议中提出的解决方案, 那么 Rails 技术的细节可能并不重要. 如果这些能够引起你的共鸣, 或至少对此你有兴趣, 请继续....正如我上面提到的, Rails 有一个雄心勃勃的终极使命, 那就是站在全栈的角度下, 帮助开发者处理好过程中的每一块代码, 从连接到数据库, nosql 数据存储, 业务模型, 控制器, 直到最后...这才是 Rails 的核心所在: 处理 POST, PUT 或者 GET 请求之后的事情.

    2K90

    Effective Testing with RSpec 3(介绍)

    您可以轻松练习BDD所偏好的从外内的方法,在那里您从验收测试开始并向内移动到单元测试.2在每个级别,您的表达测试将指导您的软件设计。 但是,RSpec和BDD不是同义词。...您不必练习BDD来使用RSpec,也不必使用RSpec来练习BDD。 BDD的大部分都超出了RSpec的范围; 例如,我们不会在本书中谈论利益相关者的参与。...从那时起,他就使用和教授RSpec来测试从微型微控制器全功能桌面和Web应用程序的所有内容。...你是谁 我们希望本书对广泛的开发人员非常有用,从刚刚开始使用RSpec的人使用它编写成千上万的测试的人。也就是说,我们做了一些假设,以防止本书过于陷入介绍性材料。 首先,我们假设您熟悉Ruby。...://pragprog.com/book/rspec3/effective-testing-with-rspec-3 6. https://github.com/rspec-3-book 有关RSpec

    2K20

    绕过GitHub的OAuth授权验证机制($25000)

    Rails 路由能够识别 URL 地址,并把它们分派给控制器动作或 Rack 应用进行处理。它还能生成路径和 URL 地址,从而避免在视图中硬编码字符串。...所以Rails以及其它的一些网络框架采用了一个聪明的技巧:它试图将HEAD请求路由GET请求相同的地方,然后运行控制器代码,以此省略掉消息响应体。...这看上去很好,但却是一个漏洞百出的抽象概念,如果此时控制器发出request.get?的请求,对于这样的请求,因为现在控制器是HEAD请求,而不是GET请求,所以将会返回false。...前面我们说过,Rails路由会把它当成GET请求来处理,所以它会被发送到控制器中。...但当HEAD请求到达控制器后,控制器会意识这不是一个GET请求,所以控制器会检查它是否是一个经过授权验证的POST请求,之后, GitHub会找到请求中指定OAuth授权流程的APP,并给予相应的访问授权

    2.8K10

    Rails MVC 和 CRUD(3)

    创建一个控制器和视图 要在 Rails 中显示“My first test” 的静态页面,需要新建一个控制器和视图 控制器用来接受向程序发起的请求 视图的作用是,以人类能看懂的格式显示数据 [root@...create app/controllers/welcome_controller.rb route get 'welcome/index' invoke erb...do get 'welcome/index' root 'welcome#index' end [root@h202 blog]# ---- 进行访问 直接刷新页面 注意,我修改了配置和服务...,但并没有对服务进行重启,而可以直接加载出新的内容,说明 Rails 可以进行动态加载 In development mode, Rails does not generally require you...下面是访问过程中产生的日志 Started GET "/" for 192.168.100.1 at 2016-04-22 20:13:15 +0800 Cannot render console from

    71130

    从Web开发者的视角来解读MVC架构

    首先,让我们来看看有哪些使用到了MVC的流行Web框架: Ruby on Rails (Ruby) Express (JS) Backbone (JS) Angular (JS) Laravel (PHP...此类框架的另一个特点是:同一个框架可能会将其应用程序放置在控制器中,然后将另一部分放置在模型中。因此不少Web开发人员认为MVC架构略显混乱,甚至毫无固定章法可循。...对于Ruby on Rails而言,我们可以使用嵌入式的ERB(https://ruby-doc.org/stdlib/libdoc/erb/rdoc/ERB.html)。...控制器 ***是控制器,它与用户的输入有关。例如:用户在访问页面时点击某个链接,触发了一个GET请求;或者是以提交表单的形式,发送一个POST请求;当然我们也可以发出删除、或提出更新等类型的请求。...由于这些动作无法直接从浏览器中生成,因此您只能自行产生一个GET或POST,或者是通过内置在某个框架中的HTTP客户端,来达到该目的。 在此,控制器充当的是模型与视图之间的中间人角色。

    3.5K20

    架构的演进, 阿里资深Java工程师表述架构的腐化之谜

    从维基百科的词条看来,我们经常听到的有插件架构(Plugin),以数据库为中心的架构(Database Centric),模型-视图-控制器架构(MVC),面向服务的架构(SOA),三层模型(Three-Tier...正常开发之后 你也许很快会意识这其中有什么问题。但你很难意识这到底意味着什么。...JRebel能够将需要编译的Java语言变成修改、保存立即生效,减少了大量的修改、保存、重新编译、部署的时间;Spork能够启动一个Server,将RSpec测试相关的代码缓存于其中,这样在运行RSpec...Rails则是另外一个极端的例子。Rails带来的不仅仅是开发的便利,还带来了人们在Linux世界多年的部署经验。...令人奇怪的是,新人能够一天或者两天之内通过阅读RSpec或者JBehave迅速了解这些工具的使用,到了团队里面却没有了文档。

    70950

    Rails路由

    绑定参数 声明普通路由时,可以使用符号作为参数: get 'photos(/:id)', to: :display 在处理 /photos/1 请求时,会把请求映射到 Photos 控制器的 display...动态片段 声明普通路由时,允许使用多个动态片段,动态片段会传入params,以便在控制器动作中使用: get 'photos/:id/:user_id', to: 'photos#show' /photos..., :post] 通过 via: :all 选项,路由可以匹配所有的HTTP方法 match 'photos', to: 'photos#show', via: :all 把GET和POST请求映射到同一个控制器动作上会带来安全隐患...请求 unicode 字符路由 声明路由时,可以直接使用 Unicode 字符: get "忽如寄" , to: 'welcome#index' 自定义资源路由 指定控制器 :controller 选项用于显式指定资源使用的控制器...,仍然映射到 new 和 edit 动作上 限制创建的路由 Rails 默认会为每个 REST 式路由创建7个默认动作,可以使用 :only 和 :except 选项来微调此行为。

    4.5K20
    领券