ruby-on-rails - Rails - 具有多个模型的acts_as_list

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

我已经设法使用 act_as_list我的模型(这很容易)一个一个,但现在我遇到了问题。

在我的应用程序中有 3 个模型:Facility , ServiceActivity .我需要使用 acts_as_list在他们的工会……有可能这样做吗?

希望我的问题很清楚

最佳答案

您应该使用具有多态关联的第四个模型,然后将列表放在上面。

首先,阅读多态关联以了解这一点:http://guides.rubyonrails.org/association_basics.html#polymorphic-associations

现在你需要一个看起来像这样的类:

class Position < ActiveRecord::Base
  belongs_to :positionable, polymorphic: true
end

和一个看起来像这样的迁移:
class CreatePositions < ActiveRecord::Migration
  def change
    create_table :position do |t|
      t.integer :positionable_id
      t.string  :positionable_type
      t.timestamps
    end
  end
end

然后在其他每个模型上添加以下内容:
class Facility < ActiveRecord::Base
  has_one :position, as: :positionable
  # ...
end

关于ruby-on-rails - Rails - 具有多个模型的acts_as_list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6329981/

相关文章:

ruby-on-rails - act_as_list 与 has_and_belongs_to_many 关系

ruby-on-rails - 在多列上使用acts_as_list

ruby-on-rails - 如何检查 cucumber 中的单选按钮?

ruby - Redmine - Ruby - 寻找自定义字段的值

ruby-on-rails - 如何为 MiniTest 包含模块

ruby-on-rails - 当使用 update_attributes 更新资源时,acts_as_list 是否应该自动重新排序项目?

ruby-on-rails - 如何让 Rails 的 act_as_list 将新项目添加到列表的开头?

ruby-on-rails - 如何在Heroku上安装LetsEncrypt SSL证书

ruby-on-rails - Rails - 路由错误 'No route matches [PUT]'

ruby-on-rails - 将 `acts_as_list` 添加到 gemfile,rails 在运行 rails s 时给出错误 :`bundler: failed to load command: rails`