레일에 루비를 사용하여 단일 작업으로 다른 테이블 값을 저장하는 방법

칸나

한 번의 작업으로 다른 테이블 값을 저장하는 방법 ???

내가 저장하려는 사용자이메일 조치를 생성 한 사용자 테이블 값을.

모델에서

class User
  include Mongoid::Document
  field :name, :type => String
  field :email_id, :type => Integer
  field :active, :type => Boolean
  field :status_id, :type => Integer
  has_one :email
  has_one :status
  validates :name, :status_id, :active, :presence => true
  validates :email_id, uniqueness: true
end

class Email
  include Mongoid::Document
  field :email_id, :type => String
  field :type, :type => String
  field :status_id, :type => Integer
  field :old, :type => Boolean
  field :active, :type => Boolean
  field :version, :type => Integer
  has_one :status
  validates :email_id, :type, :version, :status_id, :active, :presence => true
end

class Status
  include Mongoid::Document
  field :name, :type => String
  field :status_type, :type => String
  field :created_at, :type => DateTime
  field :updated_at, :type => DateTime
end

컨트롤러에서

def user_create
  @user = User.new(user_params)
  status_id = status.where(:name => "Published").first
  email = Email.new(:email_id => params[:email_id], :type => "User_Email", :version => 1, :active => true, :status_id => status_id.id)
  email.save
  @user.active = true
  @user.status_id = status_id.id
  @user.email_id = email.id
  if @user.save
      redirect_to action: :list
  else
      redirect_to action: :new_user
  end
end

def user_params
  params.require(:user).permit(:name, :alt_name )
end

디버그 콘솔에서

email.id => {BSON::ObjectId} 5365f53f63686511fb010000

항상 0을 취하는 사용자 이메일

@user.email_id = email.id => 0

그래서 사용자 ID를 저장할 수 없습니다. 사용자 이메일 ID는 항상 0을 취하기 때문입니다.

나는 BSON ID 일반 ID를 변환하려고 시도합니다.

email.id.to_s => "5365f53f63686511fb010000"

내가 mongoid를 사용할 때만 ID를 취하는 방법 ???

사용자 테이블 값과 이메일 테이블 값을 저장해야합니다.

나는 사용하고있다

  ruby 2.0.0p353
  Rails 4.0.2
  gem 'bson_ext'
  gem 'mongo'
  gem 'mongoid', github: 'mongoid/mongoid'

이메일 테이블 버전을 자동으로 업데이트해야합니다. 모든 사용자 테이블 업데이트는 이메일 테이블 버전을 자동으로 업데이트하고 싶습니다.

이메일 테이블에서 자동으로 버전 업데이트를 유지하는 방법 ??

이 문제를 해결하는 방법 ???

엔지니어

매우 일반적인 개념.

class User
  include Mongoid::Document
  field :name, :type => String
  field :email_id, :type => Integer
  field :active, :type => Boolean
  field :status_id, :type => Integer
  has_one :email
  has_one :status
  before_create :set_defaults

  accepts_nested_attributes_for :email
  validates :name, :status_id, :active, :presence => true
  validates :email_id, uniqueness: true

  private 
    def set_defaults
      self.active = true
      self.status = Status.where(name:"Published").first
    end
end

class Email
  include Mongoid::Document
  field :email_address, :type => String
  field :type, :type => String
  field :status_id, :type => Integer
  field :old, :type => Boolean
  field :active, :type => Boolean
  field :version, :type => Integer
  has_one :status
  before_create :set_defaults
  validates :email_address, :type, :version, :status_id, :active, :presence => true

  private
    def set_defaults
      self.type = "User Email"
      self.version = 1
      self.active = true
      self.status = Status.where(name: "Published").first
    end
end

def user_create
  @user = User.new(user_params)
  if @user.save
    redirect_to action: :list
  else
    redirect_to action: :new_user
  end
end

def user_params
  params.require(:user).permit(:name, :alt_name, email:{:email_address})
end

때문에 당신은 또한 문제가 발생 Email라는 필드가 email_idA와 String있어야하는 idint로서 Integer제대로 작동하려면 협회를. 내 예에서 이것을 변경하여 볼 수 있습니다. 이제 사용자를 저장하면 이메일 레코드도 User.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Python을 사용하여 Mongodb의 단일 문서 내에서 다른 값으로 여러 하위 문서를 업데이트하는 방법

분류에서Dev

MySql 'Insert Ignore into'쿼리를 사용하여 다른 테이블의 일부 값을 기반으로 레코드를 삽입하는 방법

분류에서Dev

한 테이블의 여러 열과 다른 테이블의 단일 열을 사용하여 값 업데이트

분류에서Dev

Entity Framework를 사용하여 단일 열을 업데이트하는 동안 다른 열 값을 테이블로 변경하는 것을 방지하는 방법은 무엇입니까?

분류에서Dev

Entity Framework를 사용하여 단일 열을 업데이트하는 동안 다른 열 값을 테이블로 변경하는 것을 방지하는 방법은 무엇입니까?

분류에서Dev

다른 플랫 / 단순 하이브 테이블에서 map [structs]를 사용하여 하이브 테이블을로드하는 방법

분류에서Dev

레일에 루비에 위치 값을 쿠키로 저장하는 방법

분류에서Dev

동일한 저장 프로 시저의 단일 테이블에 대해 여러 업데이트 쿼리를 사용하는 방법

분류에서Dev

CakePHP를 사용하여 테이블에서 항목의 단일 속성을 업데이트하는 방법

분류에서Dev

한 데이터 프레임을 다른 데이터 프레임으로 루프하고 pyspark에서 일치하는 단일 레코드를 얻는 방법

분류에서Dev

VB6을 사용하여 "다른 이름으로 저장"창에 파일 경로를 제공하는 방법

분류에서Dev

SQL Server에서 단일 업데이트 쿼리를 사용하여 테이블의 열 비트 값을 바꾸는 방법

분류에서Dev

Logic Apps를 사용하여 SQL 저장 프로 시저의 형식이 지정된 결과 테이블을 SendGrid 이메일에 입력하는 방법

분류에서Dev

단일 쿼리에서 서로 다른 테이블의 값을 집계하는 방법은 무엇입니까?

분류에서Dev

C #의 다른 매개 변수를 사용하여 mysql의 한 테이블에서 다른 테이블로 값을 삽입하는 방법

분류에서Dev

각 필드를 사용하여 한 테이블의 값을 다른 테이블에 삽입하는 방법

분류에서Dev

kendoChart : 단일 valueAxis를 사용하여 여러 일련의 서로 다른 값 스케일을 표시하는 방법이 있습니까?

분류에서Dev

다른 조건에 따라 다른 테이블의 값으로 테이블을 업데이트하는 방법

분류에서Dev

앵커 태그를 사용하여 MySQL 테이블에 저장된 PDF 파일을 여는 방법

분류에서Dev

동일한 SQL Server 테이블을 사용하여 서로 다른 업데이트를 수행하는 방법이 있습니까?

분류에서Dev

기존 값에 추가를 적용하여 다른 사전으로 사전을 업데이트하는 방법

분류에서Dev

값을 기준으로 테이블 1에서 모두를 선택한 다음 해당 테이블의 값을 사용하여 동일한 테이블에서 선택하는 방법은 무엇입니까?

분류에서Dev

pywinauto를 사용하여 증가하는 이름으로 여러 파일을 저장하는 방법

분류에서Dev

"다른 이름으로 저장"기능을 사용하여 FTP 서버에 직접 파일을 저장할 수있는 방법이 있습니까?

분류에서Dev

SQL : 기본 테이블의 행 값을 기반으로 여러 테이블을 단일 테이블에 조건부로 연결하는 가장 좋은 방법

분류에서Dev

codeigniter 활성 레코드를 사용하여 mysql 테이블의 단일 필드에서 여러 값을 검색하는 방법은 무엇입니까?

분류에서Dev

Pandas를 사용하여 MySQL-DB에 부분 테이블을로드하고 저장하는 방법

분류에서Dev

동일한 테이블을 곱하기 위해 ActiveRecord를 사용하는 방법 (레일의 루비)

분류에서Dev

POST API 호출을 통해 단일 키 및 여러 값으로 양식 데이터를 저장하는 방법

Related 관련 기사

  1. 1

    Python을 사용하여 Mongodb의 단일 문서 내에서 다른 값으로 여러 하위 문서를 업데이트하는 방법

  2. 2

    MySql 'Insert Ignore into'쿼리를 사용하여 다른 테이블의 일부 값을 기반으로 레코드를 삽입하는 방법

  3. 3

    한 테이블의 여러 열과 다른 테이블의 단일 열을 사용하여 값 업데이트

  4. 4

    Entity Framework를 사용하여 단일 열을 업데이트하는 동안 다른 열 값을 테이블로 변경하는 것을 방지하는 방법은 무엇입니까?

  5. 5

    Entity Framework를 사용하여 단일 열을 업데이트하는 동안 다른 열 값을 테이블로 변경하는 것을 방지하는 방법은 무엇입니까?

  6. 6

    다른 플랫 / 단순 하이브 테이블에서 map [structs]를 사용하여 하이브 테이블을로드하는 방법

  7. 7

    레일에 루비에 위치 값을 쿠키로 저장하는 방법

  8. 8

    동일한 저장 프로 시저의 단일 테이블에 대해 여러 업데이트 쿼리를 사용하는 방법

  9. 9

    CakePHP를 사용하여 테이블에서 항목의 단일 속성을 업데이트하는 방법

  10. 10

    한 데이터 프레임을 다른 데이터 프레임으로 루프하고 pyspark에서 일치하는 단일 레코드를 얻는 방법

  11. 11

    VB6을 사용하여 "다른 이름으로 저장"창에 파일 경로를 제공하는 방법

  12. 12

    SQL Server에서 단일 업데이트 쿼리를 사용하여 테이블의 열 비트 값을 바꾸는 방법

  13. 13

    Logic Apps를 사용하여 SQL 저장 프로 시저의 형식이 지정된 결과 테이블을 SendGrid 이메일에 입력하는 방법

  14. 14

    단일 쿼리에서 서로 다른 테이블의 값을 집계하는 방법은 무엇입니까?

  15. 15

    C #의 다른 매개 변수를 사용하여 mysql의 한 테이블에서 다른 테이블로 값을 삽입하는 방법

  16. 16

    각 필드를 사용하여 한 테이블의 값을 다른 테이블에 삽입하는 방법

  17. 17

    kendoChart : 단일 valueAxis를 사용하여 여러 일련의 서로 다른 값 스케일을 표시하는 방법이 있습니까?

  18. 18

    다른 조건에 따라 다른 테이블의 값으로 테이블을 업데이트하는 방법

  19. 19

    앵커 태그를 사용하여 MySQL 테이블에 저장된 PDF 파일을 여는 방법

  20. 20

    동일한 SQL Server 테이블을 사용하여 서로 다른 업데이트를 수행하는 방법이 있습니까?

  21. 21

    기존 값에 추가를 적용하여 다른 사전으로 사전을 업데이트하는 방법

  22. 22

    값을 기준으로 테이블 1에서 모두를 선택한 다음 해당 테이블의 값을 사용하여 동일한 테이블에서 선택하는 방법은 무엇입니까?

  23. 23

    pywinauto를 사용하여 증가하는 이름으로 여러 파일을 저장하는 방법

  24. 24

    "다른 이름으로 저장"기능을 사용하여 FTP 서버에 직접 파일을 저장할 수있는 방법이 있습니까?

  25. 25

    SQL : 기본 테이블의 행 값을 기반으로 여러 테이블을 단일 테이블에 조건부로 연결하는 가장 좋은 방법

  26. 26

    codeigniter 활성 레코드를 사용하여 mysql 테이블의 단일 필드에서 여러 값을 검색하는 방법은 무엇입니까?

  27. 27

    Pandas를 사용하여 MySQL-DB에 부분 테이블을로드하고 저장하는 방법

  28. 28

    동일한 테이블을 곱하기 위해 ActiveRecord를 사용하는 방법 (레일의 루비)

  29. 29

    POST API 호출을 통해 단일 키 및 여러 값으로 양식 데이터를 저장하는 방법

뜨겁다태그

보관