Tag: ruby on rails 4

Rails ActionController :: BadRequest在生产服务器上导致500服务器错误

我们有一个土耳其网站,一些旧链接被一些搜索引擎抓取。 链接似乎格式不正确或无法处理,因此导致ActionController::BadRequest错误。 在具有development env的本地计算机上,这会导致返回带有ActionController::BadRequest的Rails错误页面。 但在服务器上,我们得到500 server error 。 这个问题在这里的其他几个页面上讨论过。 但这些解决方案都没有帮助。 在这两种情况下,我们都希望重定向到page not found的page not found -page。 由于前面提到的文章,我已经尝试在ApplicationController尝试rescue_from ActionController::BadRequest和rescue_from ActionController::RoutingError ,其中他们声明BadRequest变成RoutingError 。 但他们都没有奏效。 我希望有人有同样的问题并且已经解决了。 提前感谢您的回答。 编辑: 一个示例问题-url是http://localhost:3000/Di%c5%ef%bf%bd-f%c4%b1r%c3%a7as%c4%b1 。 终端输出: ActionController::BadRequest (ActionController::BadRequest): actionpack (4.0.0) lib/action_dispatch/routing/route_set.rb:37:in `block in call’ actionpack (4.0.0) lib/action_dispatch/routing/route_set.rb:33:in `each’ actionpack (4.0.0) lib/action_dispatch/routing/route_set.rb:33:in `call’ actionpack (4.0.0) lib/action_dispatch/journey/router.rb:71:in `block in call’ actionpack (4.0.0) lib/action_dispatch/journey/router.rb:59:in `each’ actionpack […]

将数组#select转换为rails 4中的活动记录查询

我正在编写自定义搜索function,我必须通过关联进行过滤。 我有2个活动记录支持的模型,卡片和颜色带有has_many_and_belongs_to,颜色有属性color_name 由于我的数据库已经增长到大约10k卡,我的搜索function变得exception缓慢,因为我有一个带有查询的select语句,所以基本上我不得不进行数千次查询。 我需要将数组#select方法转换为活动记录查询,这将产生相同的结果,并且我无法提出解决方案。 当前(相关代码)如下: colors = [[‘Black’], [‘Blue’, ‘Black’]] #this is a parameter retrieved from a form submission if color cards = color.flat_map do |col| col.inject( Card.includes(:colors) ) do |memo, color| temp = cards.joins(:colors).where(colors: {color_name: color}) memo + temp.select{|card| card.colors.pluck(:color_name).sort == col.sort} end end end 我试图模仿的function是只搜索具有与传入数组完全匹配的颜色的卡(比较两个数组)。 因为卡可以是单红,红蓝或红蓝绿等,我需要能够只搜索红蓝卡或只搜索单红卡 我最初是沿着这条路线开始的,但是我在将数组与活动记录查询进行比较时遇到了麻烦 color_objects = Color.where(color_name: col) Card.includes(:colors).where(‘colors = […]

为什么到处都有冻结常数?

我们可以从许多着名的存储库中轻松找到这种风格,如机架,导轨等。 例如在机架中 : PATH_INFO = ‘PATH_INFO’.freeze REQUEST_METHOD = ‘REQUEST_METHOD’.freeze SCRIPT_NAME = ‘SCRIPT_NAME’.freeze QUERY_STRING = ‘QUERY_STRING’.freeze CACHE_CONTROL = ‘Cache-Control’.freeze CONTENT_LENGTH = ‘Content-Length’.freeze CONTENT_TYPE = ‘Content-Type’.freeze rails中的另一个问题 : HTTP_IF_MODIFIED_SINCE = ‘HTTP_IF_MODIFIED_SINCE’.freeze HTTP_IF_NONE_MATCH = ‘HTTP_IF_NONE_MATCH’.freeze HTTP_IF_NONE_MATCH = ‘HTTP_IF_NONE_MATCH’.freeze 我想知道为什么这些常量字符串被冻结。 由于它们都是常量,因此应该只有一个实例。 当然,我们可以将”foo”.freeze放在某个地方来引用相同的单例实例,但是人们通常会编写像HTTP_IF_MODIFIED_SINCE这样的文字变量名。 所以在我看来,尽管使用了#freeze ,它没有任何区别,那么为什么人们会冻结常量呢?

Ruby on Rails错误:“未定义的方法`call”表示“result == false”:字符串“create method中的错误

当我尝试使用图像在我的应用中创建列表时,会抛出此错误: undefined method `call’ for “result == false”:String. 我安装了devise gem之后发生了错误。 但设计不应该与创建新的列表有任何关系? 该应用程序的其他部分工作正常,我可以创建没有图像的新列表。 错误信息 NoMethodError in ArtistsController#create undefined method `call’ for “result == false”:String 它指向的方法是在第164行的ActiveSupport中的回调方法 https://sourcegraph.com/github.com/rails/rails@master/.rubygem/activesupport/.def/ActiveSupport/Callbacks/$methods/halted_callback_hook 任何人都有任何想法可能是什么问题? 我对此很新,所以如果您需要我提供更多信息或者我需要重新解释我的问题,请告诉我。 的Gemfile source ‘https://rubygems.org’ ruby “2.0.0” gem ‘rails’, ‘4.2.0.beta2’ gem ‘uglifier’, ‘>= 1.3.0’ gem ‘coffee-rails’, ‘~> 4.0.0’ gem ‘jquery-rails’ gem ‘turbolinks’ gem ‘jbuilder’, ‘~> 1.2’ gem ‘bootstrap-sass’, ‘~> 3.3.0’ […]

Redis :: CommandError:ERR客户端发送了AUTH,但没有设置密码

这必须是一些错误的配置 我在localhost上安装了redis。 尝试通过Rails控制台连接到它时 Redis.new(:host => ‘localhost’, :port => 6379) 我无法发送命令而且我得到了 Redis::CommandError: ERR Client sent AUTH, but no password is set 我不记得设置密码,也不知道在哪里设置密码 如果我使用不同的URL(如rediscloud或redistogo),我可以发送命令(按照设置密码) 从我的理解错误说我发送密码,但redis没有密码。 但是,正如您所看到的,我没有设置任何密码.. 有没有办法调试这个?

使用simple_form和rails 4创建多个嵌套表单

我正在尝试使用以下模型创建一个简单的应用程序:类别 – [has_many] – >问题 – [has_many] – >答案 我有以下用于创建类别+问题的代码(categories / _form.haml.html): = simple_form_for(@category) do |f| = f.error_notification = f.input :title, label: “Category title: ” = f.simple_fields_for :questions, @category.questions.build do |q| = q.input :content, label: “Question content: ” = f.button :submit 我正在使用所有相同的代码来创建问题+答案(questions / _form.haml.html)。 我有所有的关系,强大的参数,嵌套的attrs和控制器配置,它对我来说很好。 两个问题: 如何在类别/ _form.haml.html中创建多个问题? 如何一次为每个问题创建类别+多个问题+多个答案(在类别/ _form.haml.html中)? 我花了几个小时试图弄清楚如何完成第二个,我能找到的所有信息都与Rails 3.0和form_for有关。 他们都没有为我工作。 这里最直接的解决方案应该是这样的: = […]

undefined方法`’为nil:NilClass for Rails模型为new

我有一个模特学生和一个控制器学生。 在控制器中我有一个新方法 def new @student = Student.new end 然后我有一个/views/students/new.html.haml使用@student吓坏了。 我收到了错误 undefined method `[]’ for nil:NilClass 这是它的haml %h1 Students#new %p Find me in app/views/students/new.html.haml = form_for(@student) do |f| = f.text_field :email = f.button “Submit” 如果我用Student.new替换@student,我会得到相同的结果。 但是,如果我启动服务器new并且只是使用 = Student.new 我会得到这个输出 # 如果我进入rails控制台,我可以乱用学生并使用Student.new和Student.all等。 有谁知道发生了什么或我做错了什么? 这是我加载localhost:3000 / students / new时的错误日志 Started GET “/students/new” for 127.0.0.1 at 2014-01-22 20:53:50 -0600 […]

Rails 4的Asset-Pipeline / Turbolinks对于大型应用程序的优缺点是什么?

我们正在开发一个相当广泛的应用程序。 该网站将有许多不同的部分,具有一些非常不同的用户界面要求和行为。 outlook未来,Rails 4将资产管道分离为一个独立的gem,以便我们可以选择是否包含它。 turbolinks可能会发生同样的事情。 这些天我一直在问自己但无法找到答案的问题是:我应该在项目中使用这些库吗? 我反思的主要问题是,一体化文件策略可能不起作用,我们将不得不在应用程序的不同部分使用文件包。 turbolink会如何对此作出反应,因为它必须假设所有js / css已经加载? 这种配置的优势是否克服了管道和turbolinks所隐含的代码复杂性? 我不指望是/否答案,只是对此事的一些看法。

为什么我无法使用rails 4.0.0.rc1(ruby 2.0)安装postgresql

第一次在论坛上,所以我会尝试尽可能具体,抱歉任何可能的拼写错误? 我相对较新的rails(不到一年),我想制作一个默认项目来使用它。 我一直在开发中使用sqlite3而在生产中使用pg(heroku),但现在我想把事情弄好(我遇到了sqlite3运行正常但pg没有的问题)并在生产和devlop中同时使用pg。 我花了2天时间搜索foruns并且所有的anwsers都是旧的或其他版本/其他操作系统。 我将尝试列出我为设置舞台所采取的步骤:在这里我的配置: -OS:Windows 7 64x -Editor:Aptana Studio -PostGresql -Rails 4.0.0.rc1 -Ruby 2.0 下载并安装postgresql-9.2.4-1-windows-x64 将默认密码设置为postgresql 在postgresql中创建一个具有所有特权的角色“my_user” 创建测试数据库“rails_test” 打开Aptana Studio并初始化一个新的默认项目,转到项目文件夹,然后运行“rails new。-d postgresql”来生成新项目。 安装pg gem“gem install pg”“gem list”正确显示pg gem 配置“database.yml”以使用正确的用户名和密码 development: adapter: postgresql encoding: unicode database: rails_test pool: 5 username: my_user password: 12345 在ruby中运行一些命令,如“gem update”,“bundle install” 然后,当我尝试生成模型并使用rake db:migrate时,我收到以下错误: Specified ‘postgresql’ for database adapter, but the […]

没有主键的ActiveRecord模型

我有一个没有主键的ActiveRecord模型GPA : class GPA < ActiveRecord::Base end 当我尝试调用GPA.first.to_json我得到TypeError: false is not a symbol 。 我猜这是因为ActiveRecord试图查找主键。 没有主键实现模型的正确方法是什么?