パラメータとして受け取った文字列を単語の配列にリファクタリングしたい (split
メソッドを使用)。
私のTest
モデルには という 1 つの属性がありますsource
。
class Test < ActiveRecord::Base
attr_accessible :source
serialize :sources, Array
after_create do
test.source.split(' ')
end
end
これはエラーを返します:
引数の数が間違っています (2..3 の場合は 0)
Rails が必要とする引数がわかりません。
UPD
そして、次のようにコードを変更すると:
class Test < ActiveRecord::Base
attr_accessible :source
serialize :sources, Array
def split_this_text(test_id)
@test = Test.where(:test_id=>test_id)
@test.source.split(' ')
end
end
そして、tests_controller/create でメソッドを呼び出します:
@test.split_this_text(:id)
このエラーが発生するよりも:
NoMethodError in TestsController#create
undefined method `split' for #<Arel::Nodes::JoinSource:0x4ddfc60>
UPD#2
最後に動作します 間違いなく動作しますが、何も動作しないように動作し、通常の文字列をソースにします (たとえば@test.source[0]
、文字を返します)
class Test < ActiveRecord::Base
attr_accessible :source
serialize :sources, Array
before_save :split_this_text
def split_this_text
self.source.split(' ')
end
end