Должно быть, мне не хватает чего-то действительно очевидного, но я не вижу дерева для деревьев в данный момент, и это очень похоже на вопрос о нобе! :)Доступ к переменной модели в блоке в контроллере
У меня есть модель HousePrice с двумя атрибутами, почтовыми индексами и ценой.
Почтовые индексы в настоящее время представляют собой строку, содержащую некоторый адрес в начале, а затем 1 или более почтовых индексов. Например ..
postcodes = "High Street, Tetsworth, Thame, OX9 OX9 7AB OX9 7AD OX9 7AE OX9 7AS OX9 7AT OX9 7BS OX9 7BZ"
У меня есть сценарий рубиновый, что вырезает текст я не хочу, и возвращает только почтовые индексы, как Array. Это может быть не самое лучшее, но это делает работу!
У меня есть пользовательский def в моем контроллере HousePrices, и он вызывается из ссылки на индексной странице. Тем не менее, я продолжаю получать
undefined method `slice!' for nil:NilClass
и я смущен!
Вот что я пытаюсь его ...
def second_distance_run
HousePrice.all.each do |pca|
@postc = []
@array = pca.split(',').to_a
@srt = @array[3]
@srt.slice!(0,5)
aa = @srt.split(' ').to_a
aa.each_slice(2) do |elem|
@postc << (elem[0].to_s) + (elem[1].to_s)
end
end
В Consol это работает, если вы даете ему строку, но если он получает из базы данных. Я знаю, что мне не хватает чего-то глупого, но я борюсь!
Заранее благодарен!
хорошо, 'logger.info pca' расскажет вам, что вы на самом деле имеете. Скорее всего, вы получаете пустую строку или строку с менее чем четырьмя частями после раскола. –
btw: '.to_a' после разделения бесполезно, так как' split' возвращает массив в любом случае. –
Как вы называете 'split' на' pca'? Это должен быть экземпляр модели «HousePrice», а не строки. Вы определяете разделение на модели (или делегируете ее где-нибудь)? Скорее всего, вы хотите 'pca.postcodes.split ...' вместо – BroiSatse