草庐IT

sinatra-activerecord

全部标签

sql - GROUP BY 和 COUNT 使用 ActiveRecord

引用这个:IsthereanydifferencebetweenGROUPBYandDISTINCTGivenatablethatlookslikethis:name------barrydavebilldavedavebarryjohnThisquery:SELECTname,count(*)AScountFROMtableGROUPBYname;Willproduceoutputlikethis:namecount-------------barry2dave3bill1john1对于ActiveModel使用COUNT执行GROUPBY的正确Rails约定是什么?

ruby - 在 Sinatra 中使用 Rack::CommonLogger

我有一个用Sinatra编写的小型网络服务器。我希望能够将消息记录到日志文件中。我已经通读了http://www.sinatrarb.com/api/index.html和www.sinatrarb.com/intro.html,我看到Rack有一个叫做Rack::CommonLogger的东西,但我找不到任何关于如何访问和使用它来记录消息的示例。我的应用程序很简单,所以我将它编写为顶级DSL,但如果需要的话,我可以切换到从SinatraBase继承它。 最佳答案 Rack::CommonLogger不会向您的主应用程序提供记录器,

ruby - 如何使用 Sinatra 进行 Post/Redirect/Get?

Sinatra中Rails的redirect_to方法有什么等价物?我需要遵循表单提交的Post/Redirect/Get流程,同时保留传递到我的View的实例变量。使用redirect方法时实例变量丢失。 最佳答案 Sinatra中的重定向是最简单易用的。所以下面的代码可以解释:require'rubygems'require'sinatra'get'/'doredirect"http://example.com"end您也可以像这样重定向到当前应用程序中的另一个路径,尽管此示例将删除一个方法。delete'/delete_pos

ruby - Sinatra 子目录 View

我希望能够从./views的子目录(例如./views/admin)中获取SinatraView。我知道您可以像这样设置View:set:views,Proc.new{File.join(root,"templates")}但是我怎样才能只对文件的一部分进行设置呢? 最佳答案 我不确定你到底在问什么,但你可以通过这样做在views/admin中呈现一个View:erb:"admin/report"如果您询问如何在调用erb:report时自动查看views的子目录,我不知道该怎么做,我不知道不认为您想要(如果不同目录中的两个View

ruby - 如何使用 Passenger 在 Apache 下设置 Sinatra 应用程序?

假设我有最简单的单文件Sinatra应用程序。helloworld在他们的主页上就可以了。我想在Apache下使用PhusionPassenger,又名mod_rails运行它。我需要什么样的目录结构?我必须在vhostconf文件中放入什么?我知道我需要一个rackup文件。里面有什么,为什么? 最佳答案 基本目录结构:app|--config.ru#虚拟主机文件:ServerNameapp.example.comDocumentRoot/path/to/app/publicOrderallow,denyAllowfromall配

ruby - 如何在 sinatra 中引发自定义错误代码?

我在我的sinatra应用程序中执行了以下操作:disable:show_exceptionsdisable:raise_errorserrordohaml:error,:locals=>{:error_message=>request.env['sinatra.error'].to_s}endget'/error'doraise"ERROR!!"end如果我访问/error,我会得到一个500-InternalServerError响应代码,这是上帝想要的。但是如何将代码更改为404或501等?答案:disable:show_exceptionsdisable:raise_error

ruby-on-rails - 如何从ActiveRecord 中获取每个组的最新记录?

在我的RubyonRails应用程序中,我有一个这样的数据库结构:Project.create(:group=>"1",:date=>"2014-01-01")Project.create(:group=>"1",:date=>"2014-01-02")Project.create(:group=>"1",:date=>"2014-01-03")Project.create(:group=>"2",:date=>"2014-01-01")Project.create(:group=>"2",:date=>"2014-01-02")Project.create(:group=>"2",:

ruby - Sinatra 中的动词不可知匹配

我们可以写get'/foo'do...end和post'/foo'do...end这很好。但是我可以在一个路由中组合多个HTTP动词吗? 最佳答案 这可以通过multi-routeextension实现这是sinatra-contrib的一部分:require'sinatra'require"sinatra/multi_route"route:get,:post,'/foo'do#"GET"or"POST"prequest.env["REQUEST_METHOD"]end#Orformodule-styleapplicationsc

ruby - Sinatra - 如何获取服务器的域名

我正在尝试在我的Sinatra应用程序中获取域名,但作为一个新手,我真的很难弄清楚如何做到这一点,而且我知道这一定是可能的!Rack::Request#host_with_port看起来很有前途,但我不知道如何从我的应用程序中获取它-如何在我的Ruby代码中从Rack中获取内容?或者还有另一种方法-我想我真的不想每次发生请求时都这样做(虽然这不是太糟糕),但我认为如果我能只做一次会更好当应用程序加载时。有什么提示吗? 最佳答案 只需在您的代码中使用request.host。get"/"doputsrequest.host#=>loc

ruby-on-rails - 如何自定义 rails activerecord 验证错误消息以显示属性值

当用户尝试使用已存在的名称创建记录时,我想显示如下错误消息:name"somename"已被占用我一直在努力做:validates_uniqueness_of:name,:message=>"#{name}hasalreadybeentaken"但这会输出表名而不是name属性的值 最佳答案 2件事:验证消息使用RailsI18nstyleinterpolation,即%{value}关键是value而不是name,因为在国际化的背景下,您并不真正关心模型的其余部分。所以你的代码应该是:validates_uniqueness_of