Ruby on Rails,用户模型和Active Admin查询

二氧化碳

我在应用程序中使用Active Admin。

该应用程序具有用户模型(Devise),但我有3个用户组-父母,老师和学生。每个都有自己的模型。

例如

student.rb

belongs_to :user

user.rb

has_one :student



parent.rb

belongs_to :user

user.rb

has_one :parent

我在这里要做的是存储在用户模型中所有用户组都相同的属性,因此是“ first_name,last_name,email”等,然后使用各个用户模型来存储每个用户组唯一的属性。我在主要用户表和三个用户组表之间使用一对一关系。

在这里(请注意,我没有在用户组表中显示所有属性):

在此处输入图片说明

问题在于,使用Active Admin不能很好地解决问题。在视图中,我必须创建一个用户,然后在不同的视图中分配父母和学生。我希望有一个单一的表单,例如,可以将学生的用户记录与主用户表中的属性以及学生表中的唯一属性一起放入,而无需转到多个模型视图来完成记录。太令人费解了。

有没有一种方法可以在一个视图中呈现来自不同模型的输入?即在学生中,“用户”表中有“名”,“姓” ...以及学生特有的输入?

如果您采用的方法是我在这里采取的方法,那么您会采用哪种方法?我什至不确定我是否正确地进行了关联。实际上,我什至不确定这是否是最有效的方法。

我正在使用枚举来分配角色。

将不胜感激这里的任何指导。谢谢。

安东尼·E

Students,Guardians和Teachers都是User类型。为什么不将它们合并为单个类型并使用继承将它们表示为普通类型呢?

class User < ActiveRecord::Base 
  # ...
end

class Teacher < User
  # ...
end

class Guardian < User
  # ...
end

class Student < User
  # ...
end

您将需要type通过迁移添加一列,还需要编写一个任务将它们合并到一个通用表中,但这很值得。

请参见Rails中的STI:http : //api.rubyonrails.org/classes/ActiveRecord/Inheritance.html

编辑:

如果您不想走STI路线,则必须使用嵌套属性

class User < ActiveRecord::Base 
  accepts_nested_attributes_for :teacher
  accepts_nested_attributes_for :guardian
  accepts_nested_attributes_for :student
end

然后formadmin/user.rb()中添加一个自定义

ActiveAdmin.register User do
  form do |f|
    f.inputs "User Inputs" do
      # ...
      f.input :email
      # ...
    end

    f.inputs "Guardian Attributes", for: [:guardian, f.object.guardian || Guardian.new] do |g|
      g.input :mobile_no
    end

    # Repeat for teacher, Student, etc...
  end
end

如果您使用的参数很强,请确保将User,guardian_attributes等的适当参数列入白名单。

我认为,这里的嵌套非常丑陋,拥有这种规范化的架构将很难维护和查询。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Ruby on Rails使用active_admin和ransack,对active_admin:resource的页面调度错误

来自分类Dev

Ruby on Rails:通过模型方法访问和扩展SQL查询

来自分类Dev

Cypher查询和Ruby on Rails

来自分类Dev

两列上的Ruby Rails Active Record查询

来自分类Dev

Ruby on Rails模型命名约定查询

来自分类Dev

Ruby on Rails-查询多个模型

来自分类Dev

为用户和发布模型添加评论(Ruby on Rails)

来自分类Dev

优化Ruby on Rails查询

来自分类Dev

Ruby on Rails - Active Admin 未定义的方法 `except' for #

来自分类Dev

Ruby:如何根据可变数量(Active Admin,rails 3.2,ruby)在Active Admin面板中对单词进行复数/单数化

来自分类Dev

Ruby on Rails进行关系查询

来自分类Dev

Ruby Rails方法评估查询

来自分类Dev

Ruby on Rails活动记录查询

来自分类Dev

Ruby on Rails进行关系查询

来自分类Dev

Ruby on Rails-具有STI查询的用户角色

来自分类Dev

如何在Ruby on Rails中覆盖用户模型的密码和确认?

来自分类Dev

为Ruby on Rails上的Devise设置不同的用户模型和注册路径

来自分类Dev

Ruby on Rails控制器和模型

来自分类Dev

无法使用Active Admin和Rails 4.1使用“二进制”字段创建模型

来自分类Dev

Ruby在轨道上。用户模型的admin属性的安全性如何?

来自分类Dev

Ruby on Rails Active Record查询连接两个表并根据条件进行查询

来自分类Dev

Rails_Admin多个“用户”模型+设计

来自分类Dev

Ruby On Rails Active Admin has_many 下拉菜单以添加新对象

来自分类Dev

使用Rails Admin创建双重联接查询

来自分类Dev

在Ruby / Rails中的日期范围查询

来自分类Dev

减少生成的SQL查询-ruby on rails

来自分类Dev

范围内的Ruby on Rails查询限制

来自分类Dev

Ruby on Rails查询无法正常工作

来自分类Dev

Ruby on Rails-从查询中选择范围

Related 相关文章

  1. 1

    Ruby on Rails使用active_admin和ransack,对active_admin:resource的页面调度错误

  2. 2

    Ruby on Rails:通过模型方法访问和扩展SQL查询

  3. 3

    Cypher查询和Ruby on Rails

  4. 4

    两列上的Ruby Rails Active Record查询

  5. 5

    Ruby on Rails模型命名约定查询

  6. 6

    Ruby on Rails-查询多个模型

  7. 7

    为用户和发布模型添加评论(Ruby on Rails)

  8. 8

    优化Ruby on Rails查询

  9. 9

    Ruby on Rails - Active Admin 未定义的方法 `except' for #

  10. 10

    Ruby:如何根据可变数量(Active Admin,rails 3.2,ruby)在Active Admin面板中对单词进行复数/单数化

  11. 11

    Ruby on Rails进行关系查询

  12. 12

    Ruby Rails方法评估查询

  13. 13

    Ruby on Rails活动记录查询

  14. 14

    Ruby on Rails进行关系查询

  15. 15

    Ruby on Rails-具有STI查询的用户角色

  16. 16

    如何在Ruby on Rails中覆盖用户模型的密码和确认?

  17. 17

    为Ruby on Rails上的Devise设置不同的用户模型和注册路径

  18. 18

    Ruby on Rails控制器和模型

  19. 19

    无法使用Active Admin和Rails 4.1使用“二进制”字段创建模型

  20. 20

    Ruby在轨道上。用户模型的admin属性的安全性如何?

  21. 21

    Ruby on Rails Active Record查询连接两个表并根据条件进行查询

  22. 22

    Rails_Admin多个“用户”模型+设计

  23. 23

    Ruby On Rails Active Admin has_many 下拉菜单以添加新对象

  24. 24

    使用Rails Admin创建双重联接查询

  25. 25

    在Ruby / Rails中的日期范围查询

  26. 26

    减少生成的SQL查询-ruby on rails

  27. 27

    范围内的Ruby on Rails查询限制

  28. 28

    Ruby on Rails查询无法正常工作

  29. 29

    Ruby on Rails-从查询中选择范围

热门标签

归档