我想将作为参数接收的字符串重构为单词数组(使用该split
方法)。
我的Test
模型有一个属性,称为source
.
class Test < ActiveRecord::Base
attr_accessible :source
serialize :sources, Array
after_create do
test.source.split(' ')
end
end
这将返回一个错误:
参数数量错误(0 代表 2..3)
我无法弄清楚 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
finally 可以正常工作,但没有任何错误,但表现得像没有任何工作和源通常的字符串(例如@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