2014-01-05 84 views
1

我對編碼非常陌生,並且正在開發我的第一個rails應用程序。我正在使用Wordnik API來返回單詞的同義詞。到現在爲止還挺好。下面的代碼工作,只要我只用一個字。下面分割符號

代碼在index.html.erb低於

<%= form_tag "/search", method: "GET" do %> 
     Start Smithing: 
<%= text_field_tag :search_word %> 
<%= submit_tag "get those synonyms" %> 

代碼是在Wordnik控制器

class WordnikController < ApplicationController 
    def search 
    query = params[:search_word] 
    @words = Wordnik.word.get_related(query, :type => 'synonym').first["words"] 
    end 
end 

我試圖找出如何輸入一個完整的短語或句子,並使API返回句子中每個單詞的同義詞。這將需要拆分符號,然後將每個單詞分別傳入

Wordnik.word.get_related(query, :type => 'synonym').first["words"] 

問題是,我沒有想法如何做到這一點。我試圖做

query = params[:search_word].to_s.split 

但這顯然沒有奏效。

我在the Symbol documentation找不到任何東西,我也發現this question在這裏堆棧溢出。

任何人有任何想法會指向正確的方向嗎?

Screenshot of code with the above.

+0

如果你使用'PARAMS [:search_word] .split',你應該得到一組令牌(單詞)。他們是否被空間以外的東西隔開?你會得到什麼「錯誤」的結果? – Vidya

+0

當我有.split並使用pry看看發生了什麼它仍然不會分裂它。 – cohart

+0

您是否驗證過「Wordnik.word.get_related」可以同時記錄多個單詞?或者你必須爲每個單詞打個電話嗎? – Vidya

回答

0

也許Wordnik不支持數組作爲參數,所以你將需要查詢的每一個字:

def search 
    query = params[:search_word].split 
    @words = query.map { |word| Wordnik.word.get_related(word, :type => 'synonym').first["words"] } 
end 
+0

打敗我吧。請參閱以下文檔:http://developer.wordnik.com/docs.html#!/word/getRelatedWords_get_4 分割字符串後,需要爲數組中的每個元素調用API,如上面的代碼所示。 –

+0

太棒了!對不起,新手問題。 我還沒有弄明白,但我應該有一點,這肯定會讓我走上正軌! 謝謝Vidya,Gosha和Steve – cohart