Tag: ruby on rails 4

将聚合函数SUM与GROUP BY一起应用

在Active Record / Ruby on Rails中执行此查询的最佳方法是什么 SELECT sum(amount) as total_amount FROM payments GROUP BY person_id, product_id 我似乎无法用group方法链接sum 。 我必须在这里使用find_by_sql吗?

用于动态路由的routes.rb中的Rails访问请求

我们的网站应该允许显示与给定url相关的不同内容..类似于wordpress中的多字节,我们有一个安装,并根据url提供内容。 因为有必要使用正确的语言,我想使用“动态路线”方法来提供正确的内容。 我现在的问题是,如果它们是动态的,我找不到如何在routes.rb中提供正确路由的方法。 如何将请求对象 “访问”或“传递”到routes.rb文件中的任何方法 我喜欢这个 的routes.rb Frontend::Application.routes.draw do DynamicRouter.load request end 应用程序/模型/ dynamic_router.rb class DynamicRouter def self.load request current_site = Site.find_by_host(request.host) Frontend::Application.routes.draw do current_site.routes do |route| get “#{route.match}”, to: “#{route.to}” end end end end 这不起作用,因为在routes.rb中未定义请求

自动加载常量时检测到循环依赖(Rails 4,Ruby 2)

configs / routes.rb Shutters和Paints是Jobs子资源。 resources :jobs do resources :shutters resources :paints end app / models / job.rb Job包含许多Shutters和许多Paints 。 class Job lambda { |a| a[:no].blank? } accepts_nested_attributes_for :paints, allow_destroy: true, :reject_if => lambda { |a| a[:name].blank? }` app / models / shutter.rb Shutter包含属于一个Job和一个Paint 。 class Shutter < ActiveRecord::Base belongs_to :job belongs_to :paint app / models […]

`undefined方法`find_asset’代表nil:NilClass`

我使用’rails’, ‘4.2.5’和wicked_pdf gem来生成和下载PDF,但是在Heroku上,它不包括使用wicked_pdf_stylesheet_link_tag标签的css。 Heroku错误日志: ActionView::Template::Error (undefined method ‘find_asset’ for nil:NilClass) 我在这里错过了任何配置吗?

如何在命名空间和根路径的路由中有一个资源 – Rails 4

我正在命名空间“admin”中创建自定义管理面板。 我在该命名空间中有资源“课程”。 但我还想要一个不在该命名空间中的“课程”的路线: 例如:BOTH localhost:3000/admin/courses AND localhost:3000/courses 如果这需要不同的控制器,那没关系。 我担心的是,如果我有相同路线的两种资源,它就不会真的干。 namespace admin do resources :courses end 只是 resources :courses 有没有办法在命名空间和没有命名空间之间共享一个资源,或者是上面的示例?

Rails 4升级后,未定义的方法`标记’格式化程序错误

我按照Ruby Screencast指南从Rails 3.2升级到Rails 4。 我的测试正在运行并且服务器启动,但是当我发送请求时收到错误: ERROR NoMethodError: undefined method `tagged’ for # /home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/activesupport-4.0.0/lib/active_support/tagged_logging.rb:67:in `tagged’ /home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/railties-4.0.0/lib/rails/rack/logger.rb:21:in `call’ /home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/quiet_assets-1.0.2/lib/quiet_assets.rb:18:in `call_with_quiet_assets’ /home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/actionpack-4.0.0/lib/action_dispatch/middleware/request_id.rb:21:in `call’ /home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/rack-1.5.2/lib/rack/methodoverride.rb:21:in `call’ /home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/rack-1.5.2/lib/rack/runtime.rb:17:in `call’ /home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/activesupport-4.0.0/lib/active_support/cache/strategy/local_cache.rb:83:in `call’ /home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/actionpack-4.0.0/lib/action_dispatch/middleware/static.rb:64:in `call’ /home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/railties-4.0.0/lib/rails/engine.rb:511:in `call’ /home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/railties-4.0.0/lib/rails/application.rb:97:in `call’ /home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/rack-1.5.2/lib/rack/lock.rb:17:in `call’ /home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/rack-1.5.2/lib/rack/content_length.rb:14:in `call’ /home/mahoni/.rvm/gems/ruby-2.0.0-p195/gems/rack-1.5.2/lib/rack/handler/webrick.rb:60:in `service’ /home/mahoni/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/webrick/httpserver.rb:138:in `service’ /home/mahoni/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/webrick/httpserver.rb:94:in `run’ /home/mahoni/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/webrick/server.rb:295:in `block in start_thread’ 我已经查看了代码,对我来说没有意义。 它调用logger.tagged 。 变量logger后面的对象不是记录器,而是Formatter对象。 这很奇怪。 知道是什么原因引起的吗? 到目前为止我: 删除了我的Gemfile.lock gem […]

如何针对某些路径在Rails 4中有选择地启用SSL?

如何为给定路径关闭SSL HTTPS? 我看到为某些资源操作启用SSL,但这是为单个路径启用HTTPS。 我的配置有 config.force_ssl = true 但是,当我显示一个包含iframe的页面并嵌入外部源时 <iframe src='http://www. 然后它甚至没有出现(Chrome),因为它是混合内容。 所以我想为具有iframe的单一路由禁用SSL。 (我真的想根据内容打开和关闭它。) 我尝试将其添加到我的routes.rb get ‘frame’, :constraints => { :protocol => ‘http’ } 但是这给出了一个错误http://127.0.0.1:3000/posts/136/frame No route matches [GET] “/posts/136/frame” 即使路线出现了 frame_post GET /posts/:id/frame(.:format) posts#frame {:protocol=>”http”} 我还看到了Rails 3.1中特定路由的强制SSL并尝试过 gem ‘rack-ssl-enforcer’ # Gemfile config.middleware.use Rack::SslEnforcer, :except => [ /\/frame$/ ], :strict => true # application.rb 但它仍然总是重定向到https。 我也试过了 […]

Rails – 如何在URL中“合并”或附加值到数组?

我试图在URL中传递一个数组,这工作正常,但我想知道如何插入或删除某些值? 例如,我有一个看起来像这样的链接: http://localhost:3000/pins?genre_ids[]=1,2,3 我想构建一组可以插入或删除此URL数组中的数字的链接。 目前,我只需更改genre_ids []值的每个链接,我想添加到其中,或根据需要带走。 这是我建立链接的代码…… [genre[0].id] }) ) %> 我认为我所追求的是类似于params.merge()但是对于params[:genre_ids]的值params[:genre_ids] 我希望你能明白我的意思吗? 如果当前URL读取/pins?genre_ids[]=1,2,3我喜欢它,以便我构建的每个链接都包含此当前链接,并在此数组中添加另一个数字,以便它看起来像/pins?genre_ids[]=1,2,3,4 任何帮助将不胜感激。 我来自CF背景,所以我仍然试图了解Ruby和Rails。 我在Ruby 2中使用Rails 4。 谢谢,迈克尔。

RAILS 4.0中Log4r的未定义方法格式化程序

将Rails从3.1.2升级到4.0后,我收到此错误。 当使用rails启动我的服务器时,我遇到了以下错误 C:/ruby-2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands/server.rb:78:in `start’: undefined method `formatter’ for # (NoMethodError) 我一直在Log4r网站上,但没有任何信息;有关升级Rails时的错误。 有谁知道这个bug来自哪里。 谢谢!

Rails 4.2.0.beta2 – 无法连接到LocalHost?

我按照RailsTutorial.org第3版(刚出来的那个)中的说明安装了Rails 4.2.0.beta2。 我没有使用cloudIDE,而是在带有RVM的Windows 7主机上通过Vagrant使用Ubuntu Trusty 32。 rails _4.2.0.beta2_ new hello_app然后粘贴在他的gemfile示例中 。 之后,我跑了: $ bundle install $ rails s 服务器启动正常,但是当我尝试连接到localhost:3000我得到“找不到服务器” Weirder仍然,我有一些其他Rails启动项目我一直在修补使用Rails 4.0.3和4.1.6,我能够连接到那里的服务器就好了。 我在这里想念的是什么? 当我使用最新版本创建新的Rails项目时,为什么我的浏览器无法连接,但它适用于旧版本? 另外,我尝试了wget http://0.0.0.0:3000 ,当它连接并收到200响应时,长度未指定,而在旧版本下的另一个全新的Rails应用程序,我会得到实际的文件大小index.html是。