Tag: ruby on rails 3.2

Rails资产管道中的动态CSS,即时编译

我正在Rails 3.2中构建一个站点。 自从我触及Rails或Ruby以来已经有3年了,所以我两者都生锈了,再加上我最后一次使用rails就是Rails 2.3。 不用说,请原谅下面的任何“简单”问题。 这是规格 Multi Tennant CMS /商店网站 http://company1.mywebsite.com http://company2.mywebsite.com 等等 每个“商店”(也称为子域)可以通过CSS自定义具有自己的外观,感觉等 可以在应用程序内的UI中执行自定义,允许用户更改Bootstrap的基本变量(即@textColor , @bodyBackground等) 我正在使用less-rails-bootstrap gem来获取Twitter Bootstrap的外观/感觉等。 以下是挑战 我需要能够将CSS的变量动态输出到一个混合到Bootstrap的文件中,以便拾取变量以创建最终的CSS 当用户更改CSS的变量时,现有样式基本上无效。 我需要重新编译完整的CSS并将其写回磁盘,内存流或其他一些我可以抓住它的位置(请记住这是less ) 我需要不同的CSS来吐出每个子域。 有关如何处理此问题的任何建议? 使问题进一步复杂化…… …鉴于我基本上必须找到一些方法来动态编译CSS,这意味着我必须包含我通常不会在生产环境中使用的GEMS。 表现非常重要。 有没有办法隔离这个? 一旦CSS被无效并重新生成,我就可以获取内容并将其写入磁盘或存储在某些memcached / redis / etc中。 表现的实例。 任何评论,即使只是指向我一般的方向,将不胜感激。 谢谢!

如何在Heroku上找到内存泄漏?

我有一个使用Ruby 1.9.3在Heroku Cedar上运行的Rails 3.2.8应用程序。 该应用程序在启动时运行良好,但经过一天左右的连续使用后,我开始在日志中看到R14错误。 一旦内存错误开始,即使应用程序闲置几个小时,它们也永远不会消失。 垃圾收集器不应该在一段时间后清理未使用的对象并减少内存负载吗? 似乎Heroku上没有发生这种情况。 通常,在运行一些包含数千行数据的报告后,内存使用率开始上升,尽管结果是分页的。 我怎样才能找到内存泄漏? 像bleak_house这样的插件已经过时了,或者在Heroku环境中运行得不好。 我可以调整GC设置以使其更具侵略性吗?

如何让Rails 3资产更快地预编译?

我有一个正在运行的Rails 3.2.1应用程序,我正在通过Capistrano deploy/assets来运行deploy:assets:precompile任务。 一切都很好,除了编译本身很慢。 我没有那么多CSS和JavaScript(总共大约8200行)。 编译资产通常需要大约1-3分钟,大约占整个部署时间的90%。 有没有办法优化这个? 也许使用不同的程序来编译资产或以某种方式优化它? 我正在Linode 512上运行应用程序1.9.2-p290,Rails 3.2.1并使用therubyracer gem如果有任何相关性。

由于模块名称空间中的下划线,从rails 3.1升级到rails 3.2时出现路由错误

我们有一个rails应用程序,我们有一个API命名空间,定义为Api :: V1,Api :: V1_2,Api :: V1_3等。 在routes.rb中,我们设置了以下内容 namespace :api do [“v1”, “v1.2”, “v1.3”, “latest”].each do |name| namespace name, {:module => name.gsub(“.”,”__”), :as => name.gsub(“.”,”_”) } do constraints :format => /json/ do # user scoped views resources :some_endpoint, :only => [:create, :index, :show, :update, :delete], :path => “scheduler” do member do put ‘edit’ post ‘duplicate’ […]

在rails中制作用户年龄的饼图

我的用户模型中有此function可计算用户年龄 def get_age now = Time.now.utc.to_date now.year – dob.year – ((now.month > dob.month || (now.month == dob.month && now.day >= dob.day)) ? 0 : 1) end 我想要一个rails语句,它使用这个函数对用户产生查询并返回它们的年龄数。 然后将年龄分组在诸如[10以下,10-20之间等]的标签中 就像是: 其中get_age是用户模型中编写的函数。 注意:即使我将函数定义为self.get_age仍然无法正常工作

Rails 3.2创建一个在每个页面的页脚中使用的表单

我想创建一个用于在我的网页页脚中注册邮件列表的表单。 我所做的是创建一个部分,在应用程序布局的页脚中呈现这个小forms。 以下是部分代码: prohibited this mailing_list from being saved: 我还在学习rails,以便从脚手架中生成代码。 从我收集的内容中,我需要使用@mailing_list = MailingList.new来实例化@mailing_list变量,但问题是邮件列表控制器中的新操作不会被调用,因为我不一定要访问该页面。 此表单位于每个页面的页脚中。 创建此表单的正确方法是什么? 有没有办法在不调用每个控制器中的MailingList.new的情况下执行此操作? 谢谢!

未定义的局部变量或使用devise&rails 3.2的方法`current_user’

我试图在我的“团队”模型中编写一个方法,但current_user显示此错误 未定义的局部变量或方法`current_user’for# def set_default_url if current_user.id == self.user_id “/assets/default_black_:style_logo.jpg” else “/assets/default_:style_logo.jpg” end end current_user方法适用于其他模型和控制器。 我这样称呼这个方法。 has_attached_file :logo, :styles => { :medium => “200×200#”, :thumb => “100×100#”, :small => “50×50#” }, :default_url => :set_default_url 我使用rails 3.2,ruby 1.9.3和设计3.1。 这似乎是一项简单的任务,但我不明白故障所在。 如果有人帮助我,我将非常感激。

未初始化的常量“控制器名称”

我的路由/资源和控制器出错了。 我在routes.rb中有以下内容: # routes.rb resources :users do resource :schedule end 我在控制器/用户/内部设置了schedule_controller.rb,我认为它应该是: class Users::ScheduleController < ApplicationController # Controller methods here… end 运行rake:路线显示 user_schedule POST /users/:user_id/schedule(.:format) schedules#create new_user_schedule GET /users/:user_id/schedule/new(.:format) schedules#new edit_user_schedule GET /users/:user_id/schedule/edit(.:format) schedules#edit GET /users/:user_id/schedule(.:format) schedules#show PUT /users/:user_id/schedule(.:format) schedules#update 但是,导航到/ users /:user_id / schedule会返回以下错误: uninitialized constant SchedulesController 我对问题可能是什么的唯一想法是与嵌套资源或声明单个资源有关,而我在某处出错了。 我正在使用帮手 new_user_schedule_path(current_user) 链接到我的“新”视图时。

数据库清理程序不在最小的轨道中工作

如果我使用rake minitest:controllers单独运行我的Minitest控制器测试工作正常但是当我运行rake minitest:all然后我得到validation失败错误。 这是因为电子邮件已经用于模型测试。 我使用DatabaseCleaner清理数据库但无法清理数据库。 我的数据库清理代码: require “database_cleaner” DatabaseCleaner.strategy = :transaction class MiniTest::Rails::ActionController::TestCase include Devise::TestHelpers def setup DatabaseCleaner.start end def teardown DatabaseCleaner.clean end

Rails:关闭错误显示

当我通过URL /posts/13访问我的Rails项目中不存在的/posts/13 ,浏览器会显示详细错误: ActiveRecord::RecordNotFound in PostsController#show Couldn’t find Post with ID=13 Rails.root: … … Request Parameters: {“id”=>”13”} … 有没有办法关闭这个详细的错误显示?