2015-12-12 7 views
0

Я пытаюсь проверить, существует ли параметр ': postcode' текущего '@inquiry' в модели под названием 'Post' в соответствии с методом create ниже.Если оператор не оценивает значение true, как ожидалось

def create 
    @inquiry = Inquiry.new(inquiry_params) 
    p = @inquiry.postcode 
    if @inquiry.save && Post.exists?(pcode:'#{p}') 
    redirect_to '/signup' 
    else 
    redirect_to '/' 
    end 
end 

Если я заменить # {р} с символьной строки (надежда Thats право терминологии), например, «SE9», что я знаю, существует в модели «Post», если заявление оценивается как истина, но когда я используйте код выше, даже если я знаю, что @ query.postcode существует.

+1

Просто напишите 'Post.exists (PCODE: р)?'. В этом примере нет необходимости в строковой интерполяции (которая будет работать только с двойными кавычками), потому что в любом случае «почтовый индекс» является строкой. – spickermann

ответ

4

интерполировать строки в двойные кавычки " вместо одинарные кавычки '

Пример с Руби 2.2.3:

p = "value" 
#=> "value" 

'#{p}' 
#=> "#{p}" 

"#{p}" 
#=> "value" 
Смежные вопросы