【问题标题】:Rails 4 - helper methodRails 4 - 辅助方法
【发布时间】:2016-07-22 16:33:53
【问题描述】:

我正在尝试弄清楚如何使用我编写的辅助方法。

它在配置文件模型中运行良好,但在用户模型中却没有我想要的那样运行。

我有称为用户和角色的模型。它们是关联的并且属于许多。

在我的角色助手中,我有:

模块角色助手

def text_for_role(name)
  case name
      when 'guest'
        'Guest Pass'
  end
end

在我的用户索引显示页面中,我有:

<% @users.each do |user| %>


              <%= user.roles.each do |role| %>
                <%= text_for_role(role.name)%>
              <% end %>                   
          </td>

当我尝试这个时,它会呈现:

访客通行证 [#]

我如何摆脱 [] 内的位? - 我只想显示角色名称。

【问题讨论】:

    标签: ruby-on-rails helper


    【解决方案1】:

    改变

    <%= user.roles.each do |role| %>
    

    <% user.roles.each do |role| %>
    

    【讨论】:

      【解决方案2】:
      module RolesHelper
        @roles = {
          'Guest' => 'Guest Pass',
          'Admin' => 'Admin pass',
        }
      
      class << self
        def list
          @roles.map{|k,v| [k,v] }
        end
      
        def role(str)
          return @roles[str]
        end
      end
      end
      

      索引页:

      <%= user.roles.each do |role| %>
            <% RolesHelper.role(role)%>
      <% end %> 
      

      此外,如果您在 users_controller.rb 中执行此操作,则会更快地为每个用户加载角色。

      def index
          @users = User.includes(:role)
      end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-03
        • 2012-08-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多