使用装饰器的多行html输出

时间:2014-04-17 16:42:38

标签: ruby-on-rails

当你只需要返回一行html时,装饰者很棒!

但是,我不知道如何有条件地呈现复杂的,多行的HTML部分,例如:

<% if current_user == @user || current_user.is_admin? %> 

    <h3> Private Info: </h3> <h4> - Only <%= @user.is_owner? %> can view this information </h4>

    <p><strong>First Name:</strong> <%= @user.decorate_first_name %> </p>
    <p><strong>Last Name:</strong>  <%= @user.decorate_last_name %></p>
    <p><strong>Email:</strong> <%= @user.decorate_email %> </p>

<% end %>

正如你所看到的,我将它包装在if语句中,这正是我想用装饰器复制的,但我不确定如何。

我应该创建一个部分并使用装饰器渲染部分吗?

应用程序/装饰/ user_decorator.rb:

def decorate_private_info
    h.render 'private_info' if current_user? || admin?
end

0 个答案:

没有答案