Я новичок, чтобы реагировать на рельсы, и я ищу способ пройти в логах рельсов c в реактивные опоры. В настоящее время я получаю следующую ошибку: No route matches {:action=>"destroy", :controller=>"sessions", :id=>nil}, missing required keys: [:id]
Ошибка оправдана, потому что current_user
равен nil
. Я передал реквизит в react_component
следующим образом:
<%= react_component("Header", props: {
signout_path: session_path(current_user),
current_user: {
username: current_user.username,
email: current_user.email
}
}) %>
Когда я login
, current_user
не nil
и prop
работает, но как только я Выйдите из приложения, current_user
- это nil
, и я получаю вышеупомянутую ошибку. Мой current_user
метод в рельсах выглядит следующим образом:
def current_user
return nil unless session[:user_id]
@current_user ||= User.find_by(id: session[:user_id])
end
Есть ли способ добавить в некоторые логи c, так что только когда current_user
не nil
опора получает прошло? Примерно так:
<%= react_component("Header", props: {
unless current_user.nil?
signout_path: session_path(current_user),
current_user: {
username: current_user.username,
email: current_user.email
}
end
}) %>