2017-11-28 9 views
0

公開または未公開の投票があります。管理者は、公開されたものだけを見ることができます。 Rails文をループに適用する

は、私が試した:

<% if current_user.admin_role? %> 
    <% @polls.each do |poll| %> 
<% else %> 
    <% @published_polls.each do |poll| %> 
    <% end %> 
    <!-- content --> 
<% end %> 

しかし、構文エラーが出てくる:unexpected keyword_elseを。

構文はよくわかります。私は間違って何をしていますか?

+2

'<%@ polls.each do | poll |の後に' end'が必要です。 %> ' –

答えて

2

私があなただったら、私はコントローラにif文にしてください、何かのように:あなたのビューで、その後

@display_polls = current_user.admin_role? ? @polls : @published_polls 

そして:IMO

<% @display_polls.each do |poll| %> 
    ... 
<% end %> 

、あなたはしたくありませんあなたの意見に論理。

+2

デコレータが良いと思っています。 –

+0

合意!しかし、私はそれがより高度なトピックかもしれないと思っていた。これは、QとAとの間の短い、合理的な線のように思えます。 – jvillian

+0

そして、実際には、私の見解では「それぞれの」ループをもはや実行しません。最近は、 '@ @ presenter.polls'のように見える傾向があり、私はすべてをプレゼンターメソッドにプッシュします。 – jvillian

関連する問題