Я хочу, чтобы люди, которые не вошли в систему, могли видеть страницу шоу. Прямо сейчас они получают ошибку NoMethodError
для current_user
.
def show
@correct_user = current_user.challenges.find_by(id: params[:id])
end
sessions_helper
# Returns the current logged-in user (if any).
def current_user
if (user_id = session[:user_id])
@current_user ||= User.find_by(id: user_id)
elsif (user_id = cookies.signed[:user_id])
user = User.find_by(id: user_id)
if user && user.authenticated?(:remember, cookies[:remember_token])
log_in user
@current_user = user
end
end
end
Я использую @correct_user
, потому что хочу показать только определенные вещи создателю задачи:
<% if @correct_user %>
# show stuff to user who made challenge
<% else %>
# show to everyone else, which would mean logged in users and non logged in users
<% end %>
Как я могу разрешить пользователям, не вошедшим в систему, видеть страницу шоу, за исключением того, что подпадает под @correct_user
?
NoMethodError
? - person Trip   schedule 06.04.2016@correct_user
в представлении, потому чтоcurrent_user
равен нулю. - person AnthonyGalli.com   schedule 06.04.2016html.erb
бит, который у вас есть,if @correct_user
должен быть вашим ответом. Это не обязательно должно бытьif
else
, это также может бытьif !@correct_user
иif @correct_user
. Не могли бы вы объяснить, почему вы используете словоcorrect
? Я до сих пор не совсем понимаю, что ты здесь задумал - person Trip   schedule 07.04.2016