Size: a a a

Saint P Ruby Community

2020 October 05

w

wi11son in Saint P Ruby Community
ненавижу дефолтскоуп
источник

w

wi11son in Saint P Ruby Community
если сохранить через validate: false, то сохраняется
источник

AK

Artem Krivonozhko in Saint P Ruby Community
wi11son
ненавижу дефолтскоуп
Может выпилить?
источник

w

wi11son in Saint P Ruby Community
нужно, как только так сразу, это же по всему проекту нужно прочекать, везде, где может дергаться ассоциация и так далее
источник

AK

Artem Krivonozhko in Saint P Ruby Community
Да, и может быть это сопоставимо по времени с дебагом того, что вылезло сейчас
источник

AK

Artem Krivonozhko in Saint P Ruby Community
Зато больше не выстрелит в ногу
источник

w

wi11son in Saint P Ruby Community
Есть три причины, почему не нужно использовать дефолт скоуп
источник

w

wi11son in Saint P Ruby Community
1.
Another reason to not use default_scope is when you’re deleting an instance of a model that has a 1 to many relation with the default_scope model
Consider for example:
   class User < ActiveRecord::Base
     has_many :posts, dependent: :destroy
   end
   class Post < ActiveRecord::Base
     default_scope { where(published: true) }
     belongs_to :user
   end
Calling user.destroy will delete all the posts that are published, but it won’t delete posts that are unpublished

2.
class Post < ActiveRecord::Base
 default_scope { where(published: true) }
end
2.1.1 :004 > Post.new
=> #<Post id: nil, title: nil, published: true, created_at: nil, updated_at: nil>

3.
class Post < ActiveRecord::Base
 default_scope { where(published: true) }
 belongs_to :user
end

class User < ActiveRecord::Base
 has_many :posts
end

2.1.1 :002 > User.first.posts.unscoped
 Post Load (0.2ms)  SELECT "posts".* FROM "posts"
источник

DE

Dmitry Evgenevich in Saint P Ruby Community
wi11son
Есть три причины, почему не нужно использовать дефолт скоуп
Пробовал локально продовое окружение подрубать(RAILS_ENV=production)?
источник

w

wi11son in Saint P Ruby Community
нед.
источник

A

Anton in Saint P Ruby Community
wi11son
1.
Another reason to not use default_scope is when you’re deleting an instance of a model that has a 1 to many relation with the default_scope model
Consider for example:
   class User < ActiveRecord::Base
     has_many :posts, dependent: :destroy
   end
   class Post < ActiveRecord::Base
     default_scope { where(published: true) }
     belongs_to :user
   end
Calling user.destroy will delete all the posts that are published, but it won’t delete posts that are unpublished

2.
class Post < ActiveRecord::Base
 default_scope { where(published: true) }
end
2.1.1 :004 > Post.new
=> #<Post id: nil, title: nil, published: true, created_at: nil, updated_at: nil>

3.
class Post < ActiveRecord::Base
 default_scope { where(published: true) }
 belongs_to :user
end

class User < ActiveRecord::Base
 has_many :posts
end

2.1.1 :002 > User.first.posts.unscoped
 Post Load (0.2ms)  SELECT "posts".* FROM "posts"
во всех трех примерах использован дефолтный скоуп как фильтр. Мне кажется дефолтный ограничивающий скоуп действительно выстрел в ногу. Но например для сортировке почему бы не использовать? особенно для сущностей которые имеют строгий хронологический порядок и не имеет смысла его менять.
источник

A

Anton in Saint P Ruby Community
Но так согласен конечно, надо избавляться от всего неявного
источник

w

wi11son in Saint P Ruby Community
штука в том, что строгий хронологический порядок — это бизнес-требование, а не техническое требование
источник

w

wi11son in Saint P Ruby Community
даже для порядка дефолтскоуп не нужен
источник

w

wi11son in Saint P Ruby Community
ты ведь не будешь опираться на last в своих выборках, правда?
источник

A

Anton in Saint P Ruby Community
wi11son
ты ведь не будешь опираться на last в своих выборках, правда?
ну вот логи вывести например, нам нафик last не нужен, там просто надо чтобы в обратном хронологическом порядке было. Но я не хочу спорить. Ты прав 🙂
источник

A

Anton in Saint P Ruby Community
а подскажите провадйеров по курсам валют и погоде. кто что использует?
источник

AR

Anna Razumova in Saint P Ruby Community
Ребят, нужен кому сениор? Превосходно делаю апи и миддлвары, люблю разгребать говно, которое никто не хочет делать, и делать жизнь программистов проще. Работаю за доллары/евро/фунты. Стаж 7 лет, на рубях 3
источник

R

RealtyCalendar in Saint P Ruby Community
Anna Razumova
Ребят, нужен кому сениор? Превосходно делаю апи и миддлвары, люблю разгребать говно, которое никто не хочет делать, и делать жизнь программистов проще. Работаю за доллары/евро/фунты. Стаж 7 лет, на рубях 3
Привет, нужен
источник

DS

Dmitriy Strukov in Saint P Ruby Community
Anna Razumova
Ребят, нужен кому сениор? Превосходно делаю апи и миддлвары, люблю разгребать говно, которое никто не хочет делать, и делать жизнь программистов проще. Работаю за доллары/евро/фунты. Стаж 7 лет, на рубях 3
А шо таки в Лондоне по компаниям?
источник