草庐IT

ruby-on-rails - Rails 仅包含关系中的选定列

我会尽力解释:我有一张表“Product”和一张表“Store”。我试图只获取页面上显示的商店名称,但ActiveRecord将商店中的所有列返回给我。代码如下:@product=Product.order(id::desc).includes(:store).select("products.id,products.store_id,stores.name").limit(1)内置查询(来自Rails):ProcessingbyIndexController#indexasHTMLProductLoad(0.0ms)SELECTproducts.id,products.store_i

ruby - Rails 5 升级:在 ActionDispatch::ParamsParser (RuntimeError) 之后没有要插入的中间件

我正在将开发中的应用程序从Rails4.2升级到Rails5beta1.1。应用程序在升级前运行良好。我已经完成了基本的升级步骤(更新Ruby、更新Rails和相关步骤:http://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html)。Gemfile也已更新为最新的Gems。当我运行$railsmiddleware或$railsconsole或$railsserver时,出现以下错误:Nosuchmiddlewaretoinsertafter:ActionDispatch::ParamsParser.../.rvm/gems

ruby-on-rails - 雷未定义方法 `total_pages'

在使用kaminari时,我遇到了一个错误。gem文件:#gem'will_paginate','~>3.0.6'#gem'will_paginate-bootstrap'gem'kaminari'列表Controller.rbdefindexifparams[:tag]@lists=List.tagged_with(params[:tag]).order(created_at::desc).paginate(page:params[:page],per_page:3)else@lists=List.all.order(created_at::desc)endend我还使用.pagep

ruby-on-rails - 如何在 Rails 中间件中查找当前抽象路由

Rails版本:'~>4.2.7.1'spree版本:'3.1.1'提示:我如何获得/api/products/:id的路线或在Rails4应用程序的中间件中该路由的Controller和操作。详情:我正在我的Rails应用程序中添加一个类似于gemscout_statsd_rack的中间件.这将添加以下middleware到Rails应用程序以通过statsd发送指标:defcall(env)(status,headers,body),response_time=call_with_timing(env)statsd.timing("#{env['REQUEST_PATH']}.re

ruby-on-rails - Rails 中的用户监控

我们有一个带有广泛管理部分的应用程序。我们对功能有点满意(就像您一样),并且正在寻找一些快速简便的方法来监控“谁使用什么”。理想情况下,一个简单的gem将允许我们在每个用户的基础上跟踪Controller/操作,以构建使用的功能和未使用的功能的图片。任何你会推荐的..谢谢主场 最佳答案 我不知道有什么流行的gem或插件可以解决这个问题;过去,我在ApplicationController中将这种审计实现为before_filter:从内存中:classApplicationControllercurrent_user,:contro

ruby-on-rails - Rails partials 的依赖关系图

在我当前的RubyonRailsView中,我们有很多View和局部View。事实上太多了,以至于不清楚哪个View使用哪个部分(它本身也可能使用其他部分)。问题是是否有一个工具可以生成所有View和部分的依赖图(理想情况下生成一个图,但这很容易做到)或者您是如何解决这个问题的。 最佳答案 我创建了一个插件(基本上只是一个rake任务),它为您生成一个包含View和部分View的所有依赖关系的图表。获取http://github.com/msales/partial_dependencies/tree/master

ruby-on-rails - 是否可以让数据库事务跨越 Rails 中的多个请求?

我有一个跨越多个页面的表单。现在的设置方式并不理想,因为它会在提交时保存(到数据库)每个页面。因此,如果用户未在所有页面上完成表单,则数据库中将保存不完整的用户注册信息。如果用户没有完全填写表格,我想“回滚”保存。那么有没有一种方法可以设置一个事务,该事务在用户填写第一个表单时开始,在用户完成最后一页时结束? 最佳答案 您正在寻找的是acts_as_state_machinegem.如果您不熟悉状态机,请查看here. 关于ruby-on-rails-是否可以让数据库事务跨越Rails中

ruby - 在 Rails 之外的 HAML 中渲染 HAML 部分

我正在使用HAML为站点生成一些静态html页面,并且我想将公共(public)组件拆分为可包含在多个页面中的部分,就像在Rails中一样。但是,我不想使用整个Rails堆栈来执行此操作,因为它看起来有点矫枉过正。我在Internet上四处寻找,但没有找到任何东西,这比仅仅做这样的事情要好:Haml::Engine.new(IO.read("header.haml")).render有没有更好的方法从HAML中包含所谓的部分?我缺少现有的过滤器或命令? 最佳答案 最好将haml&sass与构建静态网站的工具结合使用。这里有一些链接:

ruby-on-rails - 在 Ruby on Rails 中搜索 - 如何搜索输入的每个单词而不是确切的字符串?

我已经使用ruby​​onrails构建了一个博客应用程序,我正在尝试实现一个搜索功能。博客应用程序允许用户标记帖子。标签在它们自己的表中创建并且belong_to:post。创建标签时,标签表中的记录也会创建,其中标签的名称为tag_name并通过post_id关联。标签是字符串。我试图让用户以任何顺序搜索任何单词tag_name。这就是我的意思。假设某个帖子有一个标签是“rubycodecontroller”。在我当前的搜索功能中,如果用户搜索“ruby”、“ruby代码”或“ruby代码Controller”,就会找到该标签。如果用户输入“rubycontroller”,它将不会

ruby-on-rails - 防止 Rails 2/3 缓存 Lib/Classes

有谁知道如何指示rails不缓存lib文件夹中包含的类? 最佳答案 “缓存类”我想你的意思是在处理新请求之前,app目录中的源文件会自动重新加载到开发环境中?这与缓存无关,Ruby的正常行为是,只要进程运行,就只读取和解析一次源文件,再也不会。Rails(实际上是ActiveSupport::Dependencies)提供了一种在处理请求之前重新加载整个代码的机制。在开发环境中,这很有用,因为您不想在每次更改代码时都重新启动本地网络服务器。在生产环境中,这会严重损害性能,因此被关闭。默认情况下,应用类被标记为可重新加载。您可以使用u