2016-05-01 22 views
0

これまでに答えがありましたが、私はそれらのほとんどを読んできましたが、まだ理解できません。誰かが何が起こっているか知っていますかここで構文エラー、予期しないkeyword_else、入力の終了を期待しています^

<% if current_user.try(:email) == Join.all(:email) %> 
     <div class="panel-default"> 
     <div class="panel-body"> 
      You're already signed up for this month! Thanks! 
     </div> 
     </div> 
    <% else %> 
     <% if user_signed_in? %> 
     <%= form_for @join do |f| %> 
      <%= f.email_field :email, value: current_user.email, class: "form-control input-lg", id: "join" %> <br> 
      <%= f.submit "Join This Month's Rewards", class: "btn btn-success btn-lg" %> 
     <% end %> 
     <% end %> 
    <% else %> 
     <div class="panel panel-default"> 
     <div class="panel-body"> 
     Sorry, you're not currently signed in, so you can't sign up for our rewards. You can sign in <a href="https://stackoverflow.com/users/sign_in">here.</a> 
     </div> 
     </div> 
    <% end %> 

は完全なエラーです:/Users/Sam/Documents/workspace/rewardsApp/app/views/joins/new.html.erb:19: syntax error, unexpected keyword_else, expecting keyword_end else ^ 2つの<% end %> ヘルプが最も高く評価された後にエラーが<% else %>あるライン29、上にあります!

+0

完全なエラーを提供する必要があります。 – Laurel

+0

@Laurel私はそれを修正しました...あなたはその問題が何であるか知っていますか?私は助けを求めるのが大嫌いですが、私は本当に立ち往生しています。 – GOAT

答えて

0

ビューの3つの状態を説明するには、あなたのif/elseの設定が早すぎるようです。

<% if current_user.try(:email) == Join.all(:email) %> 
     <div class="panel-default"> 
     <div class="panel-body"> 
      You're already signed up for this month! Thanks! 
     </div> 
     </div> 
    <% else %> 
     <% if user_signed_in? %> 
     <%= form_for @join do |f| %> 
      <%= f.email_field :email, value: current_user.email, class: "form-control input-lg", id: "join" %> <br> 
      <%= f.submit "Join This Month's Rewards", class: "btn btn-success btn-lg" %> 
     <% else %> 
      <div class="panel panel-default"> 
      <div class="panel-body"> 
      Sorry, you're not currently signed in, so you can't sign up for our rewards. You can sign in <a href="https://stackoverflow.com/users/sign_in">here.</a> 
      </div> 
      </div> 
     <% end %> 
    <% end %> 
+0

ありがとう@ joncoud that worked。あなたはフォームの後に<% end %>を忘れてしまった。それ以外は、うまくいった。 – GOAT

0

これは、コードを適切にインデントすると非常に便利な理由の良い例です。一度すると、2番目のelse句があることが明らかになります。

<% if current_user.try(:email) == Join.all(:email) %> 
    <div class="panel-default"> 
    <div class="panel-body"> 
     You're already signed up for this month! Thanks! 
    </div> 
    </div> 
<% else %> 
    <% if user_signed_in? %> 
    <%= form_for @join do |f| %> 
     <%= f.email_field :email, value: current_user.email, class: "form-control input-lg", id: "join" %> <br> 
     <%= f.submit "Join This Month's Rewards", class: "btn btn-success btn-lg" %> 
    <% end %> 
    <% end %> 
<% else %> <%# <= Uh oh, second else clause %> 
    <div class="panel panel-default"> 
    <div class="panel-body"> 
     Sorry, you're not currently signed in, so you can't sign up for our rewards. You can sign in <a href="https://stackoverflow.com/users/sign_in">here.</a> 
    </div> 
    </div> 
<% end %> 
関連する問題