Я плохо знаком с направляющими после перемещения от PHP и не имею никакого конца разочарованиям, но надо надеяться существует крутая кривая обучения.
Я следовал руководству по тому, как заставить Твиттер клонироваться в направляющих и продолжил вдоль того пути, делающего его все больше Твиттера как.
Таким образом, у меня есть 'пользовательская' страница,/users/show.html.erb, которые показывают все сообщения от пользователя.
Теперь, если в настоящее время входил в систему, пользователь совпадает с владельцем страницы, я пытаюсь показать текстовое поле так, чтобы пользователь мог добавить новую запись.
Я имею то, что должно быть очень простым
<% if params[:id] == session[:user_id] %> put the text box here <% end %>
конечно, это не работает, но прямо выше его я произвел обоих сессия [: user_id] и параметрические усилители [: идентификатор], и распечатка является точно тем же.
Если я установил == на! =, я становлюсь 'помещенным текстовое поле здесь' сообщение.
какие-либо предложения относительно того, что я делаю неправильно? Я знаю эти два значения соответствие, как я вижу в URL и выводе в настоящее время зарегистрированный пользователь. Я также произвел
-<% session[:user_id] %>- -<% params[:id] %>-
так, чтобы я видел, что нет никаких разрывов или пробелов или других символов на любом конце параметров, и все это выглядит чистым.
Вывод похож на это
-4c4483ae15a7900fcc000003- -4c4483ae15a7900fcc000003-
который является mongodb objectId пользователя с тире с обеих сторон, чтобы показать, что нет никаких пробелов или чего-либо.
Вы уверены, что оба элемента представляют собой простые строки? Что произойдет, если вы сбежите, скажем,
params[:id].to_s == session[:user_id].to_s
?
Это может быть похоже на то, что указал jasonpgignac. Если вы входите в IRB:
num = "7"
num2 = 7
num == num2 # => false
Убедитесь, что они оба одного типа. Ввод <% = num2%>
фактически вызовет метод .to_s ... поэтому они кажутся равными, когда вы выводите их на свою страницу .erb.
Кроме того, вы можете перенести это сравнение в контроллер. Что-то вроде:
@is_user_home = params[:id].to_s == session[:user_id].to_s
Затем вы можете вставить в свое представление:
<% if @is_user_home %>
code here
<% end %>
Это упрощает чтение кода.