2013-12-15 4 views
1

API에서 일부 정보를 표시하려고합니다.부분 및 전달 값에서 API를 사용 하시겠습니까?

이 코드가 다음 행을 렌더링 지금

<% recco = Model.find_by_id(activity.trackable.id %> 

은 출력 ID는 내가 원하는 것 :이 항목에 연결할 때

<%= recco.item_id %> 

그러나, 나는이 필요 API에서 이름을 가져 오면 일부 코드가 실패하고 일부는 실패합니다. 이것은 내가 가지고있는 라인 :

<%= link_to @client.author(recco.item_id).name, book_path(recco.item_id) %> 

book_path 작품과 ID가 올바른 URL로 연결되는 링크를 표시합니다. API에서 이름을 얻으려고 시도하는 클라이언트는 API를 찾을 수 없다는 것을 리턴합니다.

, 나는이 (가) recco.item_id을 제거하려고 단지에 하드 코딩하는 경우 :

<%= link_to @client.author("7").name, book_path(recco.item_id) %> 

그것은 작품과 저자 이름을 표시합니다. recco.item_id이 숫자임을 API 요청에서 이해할 수없는 특별한 이유가 있습니까? book_path 링크가 잘 표시됩니다.

+0

작성자 메소드의 정의는 무엇입니까? – nickcen

+0

@ 클라이언트는 goodreads API입니다.'@client = Goodreads.new (Goodreads.configuration) ' – w25x

+0

여기에서 보석을 사용하고 있습니까? , https://github.com/sosedoff/goodreads. 그것은 HTTP 요청을 할 수있는 지하에 RestClient를 사용하므로 전달 된 ID가 문자열인지 또는이 문제에 대한 수치가 될지 생각하지 않습니다. 쿼리 작성자가 존재하지 않을 수도 있습니다. recco.item_id의 값을 출력하고 goodreads에 실제로 있는지 확인하십시오. – nickcen

답변

0

author 메서드는 정수 대신 문자열을 필요로합니다.

<%= link_to @client.author(recco.item_id.to_s).name, book_path(recco.item_id) %> 

API가 당신이 그들이하지 않았다 논리 때문에 가능성이 높습니다 변환하는 방법이에 전달 된 정수를 이해하지 못하는 이유를 : 당신이해야 할 모든 작동을 위해 ITEM_ID에 to_s를 추가입니다 인수를 문자열로 전달했습니다. 이상적으로 대중은 전달 된 모든 arg를 기대하는 값 유형으로 변환하려고합니다. 우리의 방법으로 수행 한 to_s은 이상적으로 API에 있지만, API 코드를 제어 할 가능성이 없기 때문에 어쨌든 많은 노력을 기울이지 않아도 스스로 해결해야합니다. :)

+0

작동하지 않았습니다. public_activity (_create.html.erb)에 대한 부분입니다. recco.item_id가있는 코드는 일반보기에서 작동하지만 여기에는 어떤 이유로 없습니다. – w25x

+0

나는'@client.author (# {recco.item_id}) .name'과'aut = recco.item_id.to_s'와'@client.author (aut) .name'의 조합을 시도했습니다. 아무 것도 작동하지 않지만 코드에 수동으로 번호 (예 : 7)를 입력하면 모두 ** 수행됩니다 **. – w25x

+0

숫자를 인수로 제공하여 작동하는 경우 문자열 또는 정수를 제공 한 숫자입니까? 보기가 작동하는 부분과 동일한 동작을위한 부분입니까? – Gjaldon