2016-07-25 2 views
0

배경레일 출력 내 레일 응용 프로그램에서 이야기의 모델이

올바르지 않습니다. 모델 부분 중 하나는 "published"에 대한 부울입니다.

작성 및 편집 양식에는 스토리가 게시되면 "켜기"가 게시되고 게시되지 않은 경우 "해제"로 표시되는 토글 버튼이 있습니다. 이 토글은 현재 올바르게 작동하며 스토리가 게시되거나 게시되지 않도록 전환 할 수 있습니다.; 이 토글은 그에 따라 데이터베이스를 업데이트합니다.

내가 if 문을하려고했다 쇼 페이지에서 문제

하지만이 제대로 해결되지 않은, 그래서 난 그냥 게시 된 변수에서 인쇄를했고, 항상 출력합니다 "거짓 "데이터베이스를 검사 할 때에도"true "로 설정됩니다.

강령

<% @title="Stories" %> 

<p><strong><%= @story.heading %></strong></p> 

<p><%= @story.body %></p> 

<p> 
    <%= #!!!!!!!!!!!!!!!!Not working currently!!!!!!!!!!!!! 
     # if @story.published 
     # @publish_Notice = "This story has been made public." 
     # else 
     # @publish_Notice = "This story is private." 
     # end 
     # @publish_Notice 

     @story.published # Always prints out 'false' even when database shows 'true' 
    %> 
</p> 

<p>~ <%= @story.authorName %></p> 

<p>Submitted: <%= @story.created_at.strftime("%B, %d %Y") %><br/> 

<%= 
    @location = " " 

    if @story.locationCity == "" || @story.locationCity == " " || @story.locationCity.nil? 
    @location = " " 
    else 
    @location = "Near: " @story.locationCity + ", " + @story.locationState 
    end 
%> 
<%= @location %></p> 

<% if (user_signed_in?) && (current_user == @story.user) %> 
    <%= link_to 'Edit', edit_story_path(@story) %> | 
    <%= link_to 'Delete', @story, method: :delete, data: { confirm: 'Are you sure?' } %> | 
<% end %> 
<%= link_to 'Back', stories_path %> 
+0

어디에서 문제가 있습니까? – uzaif

+0

@uzaif, 내가 발행 된 정보를 인쇄하고있는 라인에 문제가 있습니다. 내 코드에 문제가있는 위치를 보여주는 주석이 있습니다. –

답변

1

답변서 자신을 파악하고이 문제를 해결하기 위해 노력하고 아무것도 올라오고 있지 마침내 여기에 질문을 게시 2 일 후, 내가 찾은 문제는 몇 분 후에 내 이야기 ​​컨트롤러에 앉아 코드 스 니펫에. 아래 내 코드에서 문제를 찾을 수 있는지 확인하십시오.

기존 코드

def show 
    if @story.published = false && @story.user != current_user 
    redirect_to stories_url, notice: 'That action is not permitted.' 
    end 
end 

가 년후 경우에도 설명

I 설치 브라우저에서 이야기 번호를 입력 할 수있는 그것을 보는 사람을 중지하려면이 코드, 게시하지 않았습니다. 문제 코드는 스토리가 게시되었는지 확인하기 위해 두 번째 줄에 있습니다. 나는 등호 하나만 넣으므로 이야기가 나올 때마다 데이터베이스를 변경하지 않고 게시 된 변수를 '거짓'으로 변경합니다. 나는 여분의 등호를 더했고 지금은 그것이 모두 작동해야한다. 다음은 새로운 코드입니다. 새로운 코드

def show 
    if @story.published == false && @story.user != current_user 
    redirect_to stories_url, notice: 'That action is not permitted.' 
    end 
end 

내 문제로 날 도움이되는 정보를 후속 요청에 너무 빨리 자들에게 감사합니다. 도와 주셔서 감사합니다.

+1

하나의'='가 누락되면 많은 문제가 발생할 수 있습니다. – Pramod

+0

위대한 일하는 남자 !! – uzaif

+1

'if @ story.published && ...'가 더 나은 서비스를 제공 할 수 있습니다. 또는'visible @to' 메소드 안에 숨겨진 모든 "게시 된"및 "이 사람은 작성자"로직을 사용하여'if @ story.visible_to (current_user) '라고 할 수도 있습니다. –

관련 문제