Ruby on rails 嵌套属性并属于
我根据这么多的答案找到了解决问题的办法。 但是,我对Rails magic不太满意,我会理解我的web应用程序中发生了什么。 我解释一下上下文: 我有两个模型:Ruby on rails 嵌套属性并属于,ruby-on-rails,ruby-on-rails-4,nested-forms,nested-attributes,Ruby On Rails,Ruby On Rails 4,Nested Forms,Nested Attributes,我根据这么多的答案找到了解决问题的办法。 但是,我对Rails magic不太满意,我会理解我的web应用程序中发生了什么。 我解释一下上下文: 我有两个模型: class Registry < ActiveRecord::Base belongs_to :profession accepts_nested_attributes_for :profession end class Profession < ActiveRecord::Base has_
class Registry < ActiveRecord::Base
belongs_to :profession
accepts_nested_attributes_for :profession
end
class Profession < ActiveRecord::Base
has_many :registries
end
问题是,如果我使用:
<%= f.fields_for :profession do |ff| %>
因此:
我添加了@registry.build_profession
,现在我可以使用单数“:profession”
我不知道发生了什么。。。
有人能给我解释一下这两件事吗?真的,我不喜欢Rails魔术
此外,我还有一个问题,因为如果我不想在专业表单的一部分中插入数据,那么专业行总是在数据库中创建的。此行通过外键链接到注册表行,但为空(当然,如果我没有在表单中写入任何内容)。这真的不可接受。为什么我必须在检查用户是否输入值之前创建一行。这不好。我知道,嵌套属性应该在父项中,但我有必要在子项中使用它们。真的,rails程序员不认为有这种可能性吗?
我在rails中编程了6个月,我知道这并不多,但有可能每次我都要修复或发现新事物(全新的)吗
我快疯了
编辑:我正在解释这个问题。不是为了解决它 实际上,由于您使用的
具有许多关联,因此您的控制器应该是:
def new
@registry = Registry.new
@registry.profession.build
end
我正在解释这个问题,可能是重复的。不是为了解决它,所以“这似乎是一个记录在案的bug”。这是否意味着没有人知道我问题的答案?
:professions
<%= f.fields_for :professions do |ff| %>
def new
@registry = Registry.new
@registry.build_profession
end
def new
@registry = Registry.new
@registry.profession.build
end