Ruby on rails -创建current_something助手



我使用设计插件,有current_user助手。我的用户可以在应用程序中有许多配置文件,所以用户有has_many :profiles,并且总是其中一个是活跃的。

如何以及在哪里创建辅助current_profile

您可以在ApplicationController中创建帮助器,这将使从它继承的所有控制器和视图可用:

class ApplicationController < ActionController::Base  
  protect_from_forgery  
  helper_method :current_profile  
 private  
  def current_profile  
    # get current_profile based on current_user here
  end  
end  
现在你可以在任何视图/控制器中使用current_profile

User类中,我将添加一个方法

class User
  has_many :profiles
  def current_profile
    @current_profile ||= profiles.where('current = ?', true).first
  end
end

然后在你的控制器/助手中你可以写:

current_user.current_profile

至于如何,实际上只是找出哪个配置文件是活动的问题(我假设一个用户在给定的会话中只能有一个活动的配置文件-这会使它更容易)。所以,你要做的就是使用会话信息找到当前用户,然后找到活动的配置文件,然后你就完成了。

至于在哪里,这确实是一个范围的问题。如果您想让helper方法可用于任何视图,只需在应用程序控制器中声明它,就可以了。

相关内容

  • 没有找到相关文章

最新更新