ruby-on-rails - 我如何按帐户确定 acts_as_taggable_on_stereoids 的范围?

标签 ruby-on-rails ruby acts-as-taggable

如果我的网站在逻辑上分为多个帐户(例如 acme.mywebsite.com、xyz.mywebsite.com),我该如何实现 act-as-taggable-on-steroids 并拥有当前帐户范围内的标签?

要提供更多细节,如果我正在访问 acme,我不想看到来自 xyz 子域的标签。

我已经研究了 act-as-taggable-on,但只有当您想要为同一模型使用不同类别的标签时,才会提供上下文

最佳答案

假设我理解您的问题,因为您有多个帐户,每个帐户都有自己的一组标签,这些标签可以应用于您的应用程序中调用 acts_as_taggable 的任何模型。以下应该做你想做的。

您可以将以下内容添加到应用程序 Controller 以使所有操作都可以访问子域。

class ApplicationController < ActionController::Base

  before_filter :getSubdomain

  def getSubdomain
      @current_subdomain.(self.request.subdomains[0])
  end
end

假设您在数据库中以某种方式将标签链接到子域,然后您可以创建一个命名范围。此示例假定子域是用户名并且您的标记模型属于用户,然后您可以在标记模型上使用命名范围以仅选择与子域相关的那些。

class Tag < ActiveRecord::Base
  ...
  named_scope :find_by_subdomain, labmda do |subdomain|
    { :joins => "users ON users.id = tags.user_id", :conditions => ["users.name = ?", subdomain] }
  end
end

然后检索与子域关联的用户创建的帖子上的标签:Posts.tags.find_by_subdomain(@subdomain)

注意:您必须扩充 acts-as-taggable-on-steroids 提供的标签模型以添加以下内容。 - 将每个标签链接到一个帐户的列。 - 帐户范围的唯一性验证。允许多个帐户具有相同的标签。

关于ruby-on-rails - 我如何按帐户确定 acts_as_taggable_on_stereoids 的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1592562/

相关文章:

html - 设置表头和填充数据; Rails 和 SLIM

node.js - 将RoR项目推送到服务器后,出现Node.js版本错误【Buildpack问题】

ruby - Ruby 测试的图形用户可视化

ruby-on-rails - 样式化 Rails date_select 的日期字段

ruby-on-rails - 你建议我使用什么 gem 来实现一个简单的 "Contact us"表单?

ruby-on-rails - Rails 标记 gem 是否支持用其他模型标记一个模型?

ruby-on-rails - Thinking Sphinx 和acts_as_taggable_on 插件

ruby-on-rails - 样式 tag_list 类来自 Acts as Taggable On

ruby-on-rails - Rails 3.2 Assets 主机设置被忽略

ruby-on-rails - 使用 vcr stub ViewPoint gem 返回来自 ews API 的 Unauthorize 响应