2013-01-24 2 views
0

에피소드 # 258 토큰 필드 (개정판)를 따르려고합니다. 코드 작성자가 작성하는 방법을 모르지만 아래 코드와 관련된 느낌이 들지만 잘 모르겠습니다.# 258 토큰 필드 (개정) - 새로운 작성자를 만드는 방법은 무엇입니까?

작성자가 코드를 작성하는 방법에 대해 설명해주십시오. /app/models/book.rb에서

def author_tokens=(tokens) 
    self.author_ids = Author.ids_from_tokens(tokens) 
end 

링크 감사

에피소드 http://railscasts.com/episodes/258-token-fields-revised?view=asciicast에!

답변

1

이 코드는 실제로 작성자를 생성하지 않습니다. 저자 자체는 이미 만들어져 있어야합니다. 이 코드는 작성자의 토큰을 가져와 ID로 변환합니다. 그래서이 책에는 많은 저자들이 있습니다.

아래 이미지에서 책을 만들 때 작성자가 이미 존재 함을 알 수 있습니다. 우리는이 책

choosing image

이미지 신용에서 선택되는 하나가 발견되지 않는 경우 http://railscasts.com/episodes/258-token-fields-revised?view=asciicast

UPDATE 에피소드의 끝에서

, 시스템은 새로운 저자를 작성합니다. 이것은이 코드에 의해 생성된다 : https://github.com/railscasts/258-token-fields-revised/blob/master/bookstore-tokeninput-after/app/models/author.rb

class Author < ActiveRecord::Base 
    ##... 
    def self.ids_from_tokens(tokens) 
     tokens.gsub!(/<<<(.+?)>>>/) { create!(name: $1).id } 
     tokens.split(',') 
    end 
    end 

그래서, 토큰합니다 (Author.tokens 방법에서 전송됩니다) < < >>에 온다면, 그것은 저자을 만든 다음 ID를 얻을 것이다 반환.

+0

페이지 맨 아래에 Ryan Bates는 토큰 필드를 사용하여 새 작성자를 추가하는 방법을 보여줍니다. - http://asciicasts.com/system/photos/1161/original/E258I08.png – dinnouti

+0

@dinnouti 암호. –

+0

나는 탈피자를 보았고, asciicast에는 ** def self.ids_from_tokens (토큰) **가 표시되지 않습니다. 도와 줘서 고마워. – dinnouti