我正在使用Pry和我的Rails应用程序.我binding.pry在我的模型中设置了一个循环来尝试调试问题.例如:
(1..100).each do |i|
binding.pry
puts i
end
Run Code Online (Sandbox Code Playgroud)
当我输入时quit,它会进入下一次迭代并再次停止.有没有办法走出循环所以我不必输入quit100次?
目前,我知道如何摆脱它的唯一方法是使用CTRL+ C并重新启动应用程序.
我正在尝试为过渡创建一个sass mixin.这就是我到目前为止所拥有的.
@mixin transition($var)
-webkit-transition: $var
transition: $var
Run Code Online (Sandbox Code Playgroud)
我希望能够像这样传递多个参数
@include transition(color .5s linear, width .5s linear)
Run Code Online (Sandbox Code Playgroud)
不幸的是,我收到以下错误
Syntax error: Mixin transition takes 1 argument but 2 were passed.
Run Code Online (Sandbox Code Playgroud)
有没有办法这样做,所以它在css中产生以下输出,同时仍然接受一个未定义数量的参数?
-webkit-transition: color .5s linear, width .5s linear;
transition: color .5s linear, width .5s linear;
Run Code Online (Sandbox Code Playgroud) 我有一个带有深层嵌套关联的rails应用程序.
.-< WorkPeriod
Timecard -< Week -< Day -<--< Subtotal
`-< Adjustment
-< (has many)
Run Code Online (Sandbox Code Playgroud)
我正在使用Active Model Serializer来构建API.
在客户端,我想一次性加载时间卡和所有关联.
目前我的序列化器看起来像这样,
class TimecardSerializer < ActiveModel::Serializer
embed :ids, include: true
has_many :weeks
end
class WeekSerializer < ActiveModel::Serializer
embed :ids, include: true
has_many :days
end
# ... etc ...
Run Code Online (Sandbox Code Playgroud)
这一切都找到了,除了没有什么急于加载.因此,它最终会针对每个请求对数据库进行大量调用.对于每周,它会单独请求该周的日期.并且对于每一天,它单独请求它的work_periods,小计和调整.
performance ruby-on-rails associations eager-loading active-model-serializers
所以基本上我有两个班,书和作者.书籍可以有多个作者,作者可以有多本书.书籍具有以下默认范围.
default_scope :order => "publish_at DESC"
Run Code Online (Sandbox Code Playgroud)
在作者展示页面上,我想列出与该作者相关的所有书籍,所以我说以下内容......
@author = Author.find(params[:id])
@books = @author.books
Run Code Online (Sandbox Code Playgroud)
到目前为止一切都很好.作者#show页面列出了按出版日期排序的所有属于该作者的书籍.
我也在研究一种能够按照书籍的受欢迎程度排序的宝石.
@books = @author.books.sort_by_popularity
Run Code Online (Sandbox Code Playgroud)
问题是每当它尝试排序时,default_scope总是会妨碍.如果我试图取消它之前它将摆脱作者关系并返回数据库中的每本书.例如
@books = @author.books.unscoped.sort_by_popularity # returns all books in database
Run Code Online (Sandbox Code Playgroud)
我想知道我是否可以使用ActiveRelation except()方法 做这样的事情(看起来它应该工作,但事实并非如此.它忽略了顺序,只是当它是default_scope命令时)
def sort_by_popularity
self.except(:order).do_some_joining_magic.order('popularity ASC')
# |------------| |---------------------|
end
Run Code Online (Sandbox Code Playgroud)
关于为什么这不起作用的任何想法?关于如何以不同的方式工作的任何想法?我知道我可以摆脱default_scope,但我想知道是否还有另一种方法可以做到这一点.
我刚从Rspec 2.99升级到Rspec 3,我的一些测试得到以下错误.
Failure/Error: Unable to find matching line from backtrace
ArgumentError:
comparison of Symbol with Module failed
Run Code Online (Sandbox Code Playgroud)
我有以下控制器测试
require 'spec_helper'
describe PeopleController, type: :controller do
subject { response }
describe :index do
before { get :index }
it { should_not be_success }
it { should have_http_status '401' }
end
end
Run Code Online (Sandbox Code Playgroud)
知道可能导致错误的原因吗?
我'shoulda-matchers'在我的rails项目中的Gemfile中从版本1.4.2更新到2.0.0,现在当我运行我的rspec测试时,它给了我以下错误
undefined method `assign_to' for #<RSpec::Core::ExampleGroup::Nested_4::Nested_1::Nested_4::Nested_1:0x007fc96eaaaf48>
Run Code Online (Sandbox Code Playgroud)
是否在新的2.0.0版本中删除了此方法?
rspec ×2
activerecord ×1
arguments ×1
associations ×1
exit ×1
gem ×1
loops ×1
mixins ×1
performance ×1
pry ×1
rspec-rails ×1
ruby ×1
sass ×1
shoulda ×1
testing ×1
undefined ×1