내 맞춤 Ruby 스크립트에서 활성 레코드 5를 사용 중입니다.Model - Active Record 5/Rails에서 변경된 데이터 얻기
(제어기/레이크 태스크)
books.each do |book|
b_id = book[“b_id”]
bk = Books.where(book_id: b_id).first
bk = Books.new(book_id: b_id) unless bk
bk.update_book_info(book)
if bk.changed?
# ...send book title to Api...
bk.save!
end
end
(모델)
class Book < ActiveRecord::Base
before_save :get_title
def update_book_info(book)
@book = book
end
private
def get_title
# do ..something
self.title = @book[’title’]
end
end
books
배열이다.
[...send book title to Api...]
부분에 유의하십시오. 내가 API에 보낼 수 있도록 책 제목을 알아야합니다. 나는 bk.title
을 시도했지만 null
을 반환합니다!
도서 제목을 얻으려면 어떻게해야합니까?
또한 컨트롤러에서 모델로 더 많은 코드를 옮길 수 있습니까? 이 nil
을 반환하는 경우
도움말 :
'books' 변수에 대한 자세한 정보를 제공 할 수 있습니까? '해쉬 '의'Array'입니까? 아니면 이미 모델 인스턴스입니까? 해결책은 그것에 달려 있습니다. –
혼란에 드려 죄송합니다. 책은 배열입니다. – learner2017
"Books"의 "s"가 유형이고 실제로는 book_id라는 열이 있다고 가정합니다. –