我遇到了以下代码,这些代码超出了我的想法。我在前3天努力完全掌握它,但无法做到。
class TestUser < ActiveRecord::Base
self.table_name = 'garden'
belongs_to :account
accepts_nested_attributes_for :garden
上面的代码对我来说是不可理解的。
答案 0 :(得分:1)
class TestUser < ActiveRecord::Base
self.table_name = 'garden'
authenticates_with_sorcery!
belongs_to :account
accepts_nested_attributes_for :garden
逐行分解:
class TestUser < ActiveRecord::Base
这是一个名为TestUser
的类,它继承自ActiveRecord::Base
。连接到活动记录的轨道中的所有模型(即具有数据库表)具有相同的签名。继承ActiveRecord::Base
提供TestUser
模型并具有一些神奇的能力。在http://guides.rubyonrails.org/active_record_basics.html
self.table_name = 'garden'
这一行表示TestUser
模型应连接的表格为garden
。默认情况下,TestUser
模型链接到test_users
表。
这条线正在改变这种行为。
实际上,它应该是gardens
,因为所有表名都应该是复数; gardens
表用于存储有关许多花园对象的信息。
在http://apidock.com/rails/ActiveRecord/ModelSchema/ClassMethods/table_name
了解table_name
authenticates_with_sorcery!
此行表示系统使用sorcery gem进行身份验证。在http://railscasts.com/episodes/283-authentication-with-sorcery
了解有关此内容的详情belongs_to :account
这一行表示TestUser
对象与belongs_to
模型的关系Account
。有了这种关系,您就可以使用test_user's
方法找到test_user.account
帐户。这假设test_user
是TestUser
模型的实例。即test_user = TestUser.new
。在http://guides.rubyonrails.org/association_basics.html#the-belongs-to-association
belongs_to
关联的详情
accepts_nested_attributes_for :garden
此行表示您可以在保存Garden
对象时保存TestUser
对象上的属性。在http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html
accepts_nested_attributes_for
的更多信息
最后提供一些建议,帮助您更好地了解rails世界中的所有内容:通过全面的rails教程来深入了解rails概念。强烈推荐免费提供https://www.railstutorial.org/book上的Rails教程书。