2016-05-18 5 views
0

Rubyメソッドの条件を満たす場合にのみページに表示される出力をオーバーライドしようとしています。ルビメソッドの表示出力をどのようにオーバーライドするのですか?

このページでは、アクティビティパラメータにロールが割り当てられている場合にのみ、アクティビティを編集するユーザーが表示されます。ここで


は方法のサンプルです:

def activity_by_role(data) 
    if !data.include?(:role) 
     content_tag(:div, content_tag(:p, "Not Permitted"), class: "strong") 
    end 
    end 

私はこのコードを使用してビューにメソッドを呼び出しています:

<%= render_activity activity unless activity_by_role(activity.parameters) %> | created at <%= activity.created_at %> 

これは私が受け付けており、出力は次の次のとおりです。 enter image description here

ユーザー名の後ろに空白があります"Not Permitted"と表示されるようにしてください。編集された「アイテム」は、そのアクティビティ出力をどのように表示するかを示します。

アクティビティのパラメータが条件を満たす場合に "Not Permitted"というテキストを表示する方法についてのご意見はありますか?

答えて

1

私が正しくあなたの問題を理解していれば、あなたは、単にビューヘルパーの両方の可能性をレンダリングすることができます。

# helper: 
def render_activity_by_role(activity) 
    if activity.parameters.include?(:role) 
    render_activity(activity) 
    else 
    content_tag(:div, content_tag(:p, "Not Permitted"), class: "strong") 
    end 
end 

# view: 
<%= render_activity_by_role(activity) %> | created at <%= activity.created_at %> 
+0

完璧に、今私はそれを見るように明らかに思えます。ありがとうございました! – Bruce1138

関連する問題