2013-03-06 63 views
-4

我想按每個空格拆分給定的字符串。 所以,Test類具有來源:文字在軌道上拆分方法

def create 
     @test = Test.new(params[:test]) 
     @test.source = @test.source.split(/ /) 
     #that usual code 

如果我輸入類似

'A B C D' 

輸出是

'--- - A-B-C-D' 

和行爲像往常一樣串,所以@ test.source [0]給出' - '。我想它是數組。我想要它是數組。 我需要它通過它的順序訪問我的文本輸入中的每個單詞,例如,@ test.source [0]我想返回「A」。

UPD:

現在我發現, 'serailize' 的方法是什麼我正在尋找,但

serialize :sources, Array 

不會改變任何東西

+0

OK,這是行不通的,因爲源聲明爲文本。但我怎樣才能創建一個數組? – 2013-03-06 19:11:52

+0

你需要清楚輸入是什麼 - 可能是一串「A B C D」?在輸出結果上 - 可能是一個字符串數組,如[「--- ---」,「A-B-C-D」]但是,我真的不知道你想要的輸出是什麼! – GoZoner 2013-03-06 19:12:20

+0

谷歌「如何創建一個紅寶石陣列」。另外,看看這裏:http://www.tutorialspoint.com/ruby/ruby_arrays.htm – BlackHatSamurai 2013-03-06 19:12:21

回答

3

可能是這樣??

1.9.3-p374 :012 > "A B C D".split(" ") 
    => ["A", "B", "C", "D"] 
+0

好吧,這是我的錯誤,我標籤thsi帖子爲紅寶石)否,問題是更具體的軌道 – 2013-03-06 19:18:17

+3

Rails是寫在紅寶石上)))你可以按照我的建議將文本分割成數組,然後你就可以訪問每一個字母。 – Bob 2013-03-06 19:21:38

+0

您實際上可以訪問字符串的每個字母,例如它是一個數組:「Bob」[2]#=>「b」' – MrYoshiji 2013-03-06 19:29:23

1

務必:

def create 
     @test = Test.new(params[:test]) 
     @test.source = @test.source.split(" ") 
+0

不,我想這不起作用,因爲當我創建遷移時,源列內容被聲明爲「文本」。但我找不到如何使用數組創建列。 – 2013-03-06 19:21:03

+0

您對本文有什麼意見?因爲提供的答案適用於字符串。但是如果你從URL或其他東西獲取數據,它將會有所不同。 – BlackHatSamurai 2013-03-06 19:23:11