2014-01-07 5 views
0

데이터베이스의 일부 필드를 기반으로 링크를 조건부로 표시하려하지만 IF 문에 따라 링크가 설정되지 않고 링크가 표시됩니다.Rails IF 문이 작동하지 않습니다.

<% if :mobile.present? && :mobile_verified != true %> 
    <%= link_to "(Verify Mobile)", :controller => 'users', :action => 'resend_verification', :method=> :post %> 
<% end %> 

잘못된 것이 있습니까?

+1

사람들은 상징이 아니라 변수입니다 위의 코드에서 사용하기 전에 이러한 변수 @mobile@mobile_verified을 설정하는 것을 잊지 마십시오. 아마도':'를 제거하고 싶을 것이다. 아마도 그것들을'@'으로 접두어로 묶는 것을 의미했을 것입니다. – numbers1311407

+0

많은 감사! 솔루션으로 답을 표시 할 수없는 이유는 무엇입니까? – Bill

+0

b/c 댓글 :-) – numbers1311407

답변

1

이들은 변수가 아니라 기호입니다. :을 제거하려고합니다. 아마도 그것들을 접두사로 사용하여 인스턴스 변수 인 경우라면 @이라고 할 수 있습니다.

1

:을 사용하면 ruby symbol이 선언됩니다. 변수가 부호로 시작하면 @instance variables임을 나타냅니다.

일반적인 시나리오에서는 컨트롤러에서 인스턴스 변수를 정의한 다음 뷰 파일에서 인스턴스 변수를 사용합니다. 그래서 코드는 다음과 같이해야한다 같아요

<% if @mobile.present? && @mobile_verified != true %> 
    <%= link_to "(Verify Mobile)", :controller => 'users', :action => 'resend_verification', :method=> :post %> 
<% end %> 

+0

_if @ mobile.present? _ part가 작동하지 않는 것 같습니다 ... 컨트롤러의 _ @ mobile = @ user.mobile_로 정의됩니다 ... _ @ user_ _ @ user = current_user_로 정의됩니다. – Bill

+0

'@ mobile.present? '에 어떤 오류가 있습니까? 또는 콘솔에서 스택 추적을 붙여 넣을 수도 있습니다. – Hardik

+0

오류 메시지가 나타나지 않고 연결 만하고 조건을 충족하고 있습니다. http://pastebin.com/0GzSgH8r – Bill

관련 문제