Tag: ruby on rail

慢资产ruby1.9.3,macos,rails 3.2

我有一个非常奇怪的问题,我的资产在开发过程中非常缓慢(每个文件10秒),而这只发生在Chrome(17.0.963.79)中。 在Firefox中一切正常。 我的设置: RVM Ruby-1.9.3@p125 Rails 3.2.0 Mac OS 10.7.3我尝试使用rails-dev-tweaks gem从webrick切换到mongrel和thin ,将缓存类设置为true和false。 所有这些都没有帮助,我坚持为什么它的工作只在chrome而不是在Firefox中工作缓慢? 这也是操作系统的新设置,也许我错过了什么,谢谢! UPD。 如果这个初始请求(例如来自新标签)都顺利进行。 如果我正在刷新页面请求接近2分钟。 我只是无法绕过这个问题:(

Cancan access_by

我这样做到底发生了什么: @patient.course_enrollments.accessible_by(current_ability) 似乎发生了什么是我得到course_enrollments其中course.client_id = user.client.id ,我只是不明白accessible_by如何工作。 # ability.rb can :manage, CourseEnrollment, :course => {:client_id => user.client.id}

在Rails 3中放置时间格式规则的位置?

我发现自己重复输入我定义的许多strftime。 看过Ryan Bates的railscasts ep 32/33(我想),我在Time.now.to_s中为to_s方法创建了一个自定义选项,这样我就可以做Time.now.to_s(:sw),其中:sw是我的自定义方法,例如检索“2010年9月23日,下午5:00”。 但问题是,我不知道把#sw的定义放在哪里。 它应该在初始化文件夹中的文件中吗? 或者它应该进入application.rb? 谢谢!

带有Turbolinks的Googletagmanager

有人可以解释我们应该如何正确地将Googletagmanager与Turbolinks集成? 在普通页面上,我们只需在开始标记之后立即复制/粘贴此代码。 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({‘gtm.start’: new Date().getTime(),event:’gtm.js’});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!=’dataLayer’?’&l=’+l:”;j.async=true;j.src= ‘//www.googletagmanager.com/gtm.js?id=’+i+dl;f.parentNode.insertBefore(j,f); //f.parentNode.insertBefore(j,f); })(window,document,’script’,’dataLayer’,’GTM-******’); 如果我在Turbolinks支持的页面中复制此代码,我可以看到只有一个网络请求(第一次加载页面时)

覆盖Rails上传器以播种数据库

我有一个CarrierWave rails上传器。 我想用假用户播种数据库,所以我试图用相同的种子文件添加图像。 图像在一个共同的存储空间中,所以如果我能在数据库中获取头像字符串,它们就可以工作。 当它保存用户时,虽然图像没有粘附。 # db/seeds.rb user1 = User.create :email => “test1@test.com”, :password => “testing”, :name => “Bob Dylan”, :avatar => “v1357014344/bdylan.jpg” user1.save # IRB User.first => # > a = User.first > a.avatar = “v1357014344/bdylan.jpg” > a.save (10.7ms) commit transaction => true > a => #

设计:允许管理员编辑其他用户 – Rails

我正在尝试允许管理员用户在Devise中编辑其他用户,但是当我尝试访问另一个用户的编辑页面时(例如/ users / 1 / edit),我收到以下消息: Unknown action Could not find devise mapping for path “/users/1/edit” 似乎有效的唯一路径是/ users / edit,它显示当前用户的编辑页面。 在我的路线文件中,我有: devise_for :users, :controllers => { :registrations => ‘users’ } resources :users 有任何想法吗? 谢谢!

skip_before_filter忽略条件

我只是在应用程序处于生产模式时才尝试使用skip_before_filter。 (我不希望我的开发实例公开,我希望应用程序自动检测它所在的实例类型,并在它不处于生产模式时显示登录屏幕)。 所以,我的应用程序控制器有以下几行: before_filter :authenticate_user!, :except => “sign_in” #redirects to log-in 并且用于显示页面的控制器具有以下行: skip_before_filter :authenticate_user!, :only => :show, :if => :in_production #public pages are public, but only when in production. 而in_production就是: def in_production ENV[‘RAILS_ENV’]==’production’ end 我意识到这里可能还有其他途径,但我很好奇为什么skip_before_filter似乎忽略了条件并总是跳过before_filter。 有什么我想念的吗?

自定义设计控制器

我想为Devise in Rails自定义我的注册控制器。 我知道你必须创建一个像这样的控制器: class AccountsController < Devise::SessionsController def create super end end 嗯,这一切都非常好。 但是,让我们说我想完全控制我的#create动作中发生的事情。 我怎么做? 如何手动创建模型并将其传递给所有参数? Account.create(params [:account])会顺利处理吗? 是否有一些内部事情正在发生我应该知道或者是我唯一的选择在行动中调用#super ?

Errno :: EACCES:运行rake test:models时,权限被拒绝@ unlink_internal

我正在玩rails 4.我刚刚为我的模型创建了非常简单的测试但是当我尝试执行“rake test:models”时,我得到以下错误: C:\rails\project>rake test:models DL is deprecated, please use Fiddle rake aborted! Errno::EACCES: Permission denied @ unlink_internal – /tmp/db/new.sqlite3 C:/rails/project/test/test_helper.rb:3:in `’ C:/rails/project/test/models/admin_test.rb:1:in `’ Tasks: TOP => test:models (See full trace by running task with –trace) 我的测试数据库配置如下所示: test: adapter: sqlite3 database: /tmp/db/new.sqlite3 pool: 5 timeout: 5000 “/ tmp / db”是我个人笔记本电脑上完全访问权限的目录。 什么想法可能是这个问题的根源?

嵌套资源路由助手无法正常工作

我有一个像这样的嵌套路线: resources :apps do resources :issues end 查看与应用程序相关的所有问题的帮助程序如下: app_issues_url(app) 但现在我想使用帮助器指向特定应用程序的特定问题,如apps / 1 / issues / 1但我不知道如何使用该帮助程序。 这个url的帮手是什么?