Изложение: У меня есть модель пользователя, которая belongs_to
модель государства (региона). Файл модели состояния rb в основном пуст, за исключением: has_many
пользователей. В db содержится информация о состоянии, и когда пользователь регистрируется, они могут выбрать свой регион; все работает нормально.Связь current_user, похоже, работает, но не контроллер
Теперь я пытаюсь использовать метод current_user
DEViSE в одном из моих контроллеров, чтобы проверить, если current_user
«s state_id
совпадение с одним из тех, кто в массиве.
class FinancesController < ApplicationController
def index
@user = current_user
if @user.state_id == ['53', '54', '60']
flash.now[:notice] = "User is from one of the accepted regions"
else
end
end
end
схемы: (точки только там, чтобы указать, что есть больше, чем просто две строки)
create_table "users", force: true do |t|
.........
t.string "email", null: false
.....
.....
t.integer "state_id"
.....
end
К сожалению, это не работает, и всегда будет использовать «еще», даже если пользователь имеет одно из принятых значений в массиве.
Например, пользователь, с которым я тестирую, имеет state_id из 54. На мой взгляд, я могу использовать <%= current_user.state_id %>
, который напечатает «54» на странице.
Я считаю, что проблема может быть в массиве ['53', '54', '60']
, потому что я попробовал только один идентификатор вместо массива, и он, казалось, дал правильные результаты. Возможно, я должен использовать цикл for для циклического перехода и проверки каждого числа в массиве, если это так?
Спасибо, мне пришлось удалить «» кавычки из разных чисел и кажется, но теперь он работает хорошо. –