«activerecord» 태그된 질문

Active Record는 단일 객체에서 도메인 로직과 스토리지 추상화를 결합한 패턴입니다. 패턴에 대한 질문에이 태그를 사용하고 Rails ORM 프레임 워크에 대한 질문에 [rails-activerecord]를 사용하십시오.

7
Rails가 마법을 만들거나 업데이트합니까?
CachedObject키로 인덱싱 된 일반 직렬화 된 객체를 저장 하는 클래스 가 있습니다. 이 클래스가 create_or_update메서드 를 구현하기를 원합니다 . 개체가 발견되면 업데이트하고, 그렇지 않으면 새 개체를 만듭니다. Rails에서이 작업을 수행 할 수있는 방법이 있습니까? 아니면 내 자신의 방법을 작성해야합니까?

6
레일에서 단일 호출로 여러 개체 저장
다음과 같은 작업을 수행하는 레일에 메서드가 있습니다. a = Foo.new("bar") a.save b = Foo.new("baz") b.save ... x = Foo.new("123", :parent_id => a.id) x.save ... z = Foo.new("zxy", :parent_id => b.id) z.save 문제는 더 많은 엔티티를 추가할수록 더 오래 걸립니다. 나는 이것이 모든 레코드에 대해 데이터베이스를 검색해야하기 때문이라고 생각합니다. 중첩되어 있기 …


7
Rails의 컨트롤러에서 레코드가 있는지 확인
내 앱에서 사용자는 비즈니스를 만들 수 있습니다. 그들이 index내 에서 작업 을 트리거하면 BusinessesController비즈니스가 다음과 관련되어 있는지 확인하고 싶습니다 current_user.id. 그렇다면 : 업체를 표시하십시오. 그렇지 않은 경우 : new작업으로 리디렉션합니다 . 나는 이것을 사용하려고했다 : if Business.where(:user_id => current_user.id) == nil # no business found end 그러나 그것은 사업이 존재하지 …


13
ActiveRecord 쿼리 통합
Ruby on Rail의 쿼리 인터페이스를 사용하여 (적어도 나에게는) 몇 가지 복잡한 쿼리를 작성했습니다. watched_news_posts = Post.joins(:news => :watched).where(:watched => {:user_id => id}) watched_topic_posts = Post.joins(:post_topic_relationships => {:topic => :watched}).where(:watched => {:user_id => id}) 이 두 쿼리는 모두 잘 작동합니다. 둘 다 Post 객체를 반환합니다. 이 게시물을 단일 ActiveRelation으로 결합하고 싶습니다. …


8
LEFT OUTER는 Rails 3에서 결합됩니다.
다음 코드가 있습니다. @posts = Post.joins(:user).joins(:blog).select 이는 모든 게시물을 찾고 해당 게시물과 관련 사용자 및 블로그를 반환하기위한 것입니다. 그러나 사용자는 선택 사항 INNER JOIN이므로 :joins생성 하는 사용자가 많은 레코드를 반환하지 않습니다. LEFT OUTER JOIN대신 이것을 생성하기 위해 어떻게 사용 합니까?

4
Rails 3.0에서 Arel은 정확히 무엇입니까?
ActiveRecord를 대체하고 쿼리 대신 개체를 사용한다는 것을 이해합니다. 그러나... 왜 이것이 더 낫습니까? 개체 / 쿼리를 "더 쉽게"만들 수 있습니까? 더 효율적인 SQL 쿼리로 이어질까요? 모든 주요 DB와 호환됩니까? -그럴 거라고 생각합니다. 저장 프로 시저와 함께 사용하는 것이 더 쉬울까요?

5
쿼리와 같은 안전한 ActiveRecord
LIKE 쿼리를 작성하려고합니다. 순수한 문자열 요구 사항이 안전하지 않다는 것을 읽었지만 안전한 LIKE 해시 쿼리를 작성하는 방법을 설명하는 문서를 찾을 수 없습니다. 가능합니까? SQL Injection을 수동으로 방어해야합니까?

5
RoR 4에서 유효성 검사가 포함 된 정규식
다음 코드가 있습니다. class Product < ActiveRecord::Base validates :title, :description, :image_url, presence: true validates :price, numericality: {greater_than_or_equal_to: 0.01} validates :title, uniqueness: true validates :image_url, allow_blank: true, format: { with: %r{\.(gif|jpg|png)$}i, message: 'URL must point to GIT/JPG/PNG pictures' } end 작동하지만 "rake test"를 사용하여 테스트하려고하면 다음 메시지가 표시됩니다. rake aborted! The …

10
Rails : 마지막에 null이있는 주문
내 Rails 앱에서 다른 사람들이 어떻게 해결하는지 알고 싶은 문제가 몇 번 발생했습니다. 값이 선택 사항 인 특정 레코드가 있으므로 일부 레코드에는 값이 있고 일부 레코드는 해당 열에 대해 null입니다. 일부 데이터베이스에서 해당 열을 기준으로 정렬하면 null이 먼저 정렬되고 일부 데이터베이스에서는 null이 마지막으로 정렬됩니다. 예를 들어, 컬렉션에 속할 수도 있고 …

6
레코드가 레일에서 방금 파괴되었는지 확인
그래서 record.new_record? 새로운 것이 있는지 확인하려면 탈출구가 있는지 확인해야합니다. record = some_magic record.destroy record.is_destroyed? # => true 그런 것. 파괴하면 물체가 얼어 붙는다는 걸 알아요. 일종의 작업이지만이 작업에 대한 명시적인 것이 있습니까?

9
ActiveRecord를 사용하면 after_update 중에 레코드의 이전 값을 가져올 수 있습니까?
간단한 예제를 사용하여 설정 : 두 번째 테이블 ( ) 에 각 레코드 Totals의 amount열 합계를 보유하는 테이블 ( ) 이 1 개 Things있습니다. thing.amount가 업데이트 되면 이전 값과 새 값의 차이를에 추가하고 싶습니다 total.sum. 지금은 뺀거야 self.amount동안 before_update및 추가 self.amount시 after_update. 이로 인해 업데이트 성공에 대해 너무 많은 신뢰가 …

3
Rails has_many 관계에서 기본적으로 범위 사용
다음과 같은 수업이 있다고 가정 해 봅시다. class SolarSystem < ActiveRecord::Base has_many :planets end class Planet < ActiveRecord::Base scope :life_supporting, where('distance_from_sun > ?', 5).order('diameter ASC') end Planet범위 life_supporting및 SolarSystem has_many :planets. 내가 물어 때 그래서 난 내 has_many 관계를 정의하고자하는 solar_system모든 관련 위해 planets의 life_supporting범위가 자동으로 적용됩니다. 기본적으로 solar_system.planets == …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.