关联通常是指ORM中模型之间的关系,例如ActiveRecord。
我已经广泛寻找适合我的情况的解决方案,但我找不到任何东西。 在我的应用程序中,我有一个 Person 模型,仅存储有关人员的数据: 类人 < ApplicationRec...
我创建了一个私人应用程序,通过在网络钩子中配置订阅来通知我们的平台有关联系人、公司和交易更改的信息。 我怎样才能通知协会的变化?例如,
我有一个包含选择和文本字段的表单(您可以选择一种媒体类型或创建一个): <%= form.label :media_type_id, style: "display: block" %> <%= form. 我有一个包含选择和文本字段的表单(您可以选择一个 MediaType 或创建一个): <div> <%= form.label :media_type_id, style: "display: block" %> <%= form.collection_select :media_type_id, MediaType.all, :id, :name, :prompt => "Select a Media Type" %> or create one: <%= form.text_field :new_media_type_name %> </div> 模型代码包含支持new_media_type_name的内容: class Medium < ApplicationRecord has_many :authorships has_many :authors, through: :authorships belongs_to :book_genre belongs_to :media_type attr_accessor :new_media_type_name before_save :create_media_type_from_name def create_media_type_from_name create_media_type(:name => new_media_type_name) unless new_media_type_name.blank? end end 这一切在控制台中都可以正常工作: irb(main):001> m = Medium.new => #<Medium:0x00007f9c867307d8 ... irb(main):002> m.create_media_type(:name => "Test") TRANSACTION (1.1ms) BEGIN MediaType Create (2.1ms) INSERT INTO "media_types" ("name", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id" [["name", "Test"], ["created_at", "2024-09-29 01:06:50.826184"], ["updated_at", "2024-09-29 01:06:50.826184"]] TRANSACTION (17.3ms) COMMIT => #<MediaType:0x00007f9c86cb6270 id: 6, name: "Test", created_at: Sun, 29 Sep 2024 01:06:50.826184000 UTC +00:00, updated_at: Sun, 29 Sep 2024 01:06:50.826184000 UTC +00:00> 但是从浏览器运行应用程序不会保存新的MediaType。 这是我在运行的输出中看到的内容rails s: Started POST "/media" for 192.168.1.142 at 2024-09-28 17:34:33 -0500 Processing by MediaController#create as HTML Parameters: {"authenticity_token"=>"[FILTERED]", "medium"=>{"title"=>"The New Test", "country"=>"Canada", "published_on"=>"2024-09-05", "media_type_id"=>"", "new_media_type_name"=>"Spaceship", "book_genre_id"=>"3", "summary"=>"The summary", "cover_art_path"=>"", "isbn"=>""}, "commit"=>"Create Medium"} TRANSACTION (0.8ms) BEGIN ↳ app/controllers/media_controller.rb:26:in `create' BookGenre Load (1.2ms) SELECT "book_genres".* FROM "book_genres" WHERE "book_genres"."id" = $1 LIMIT $2 [["id", 3], ["LIMIT", 1]] ↳ app/controllers/media_controller.rb:26:in `create' TRANSACTION (0.9ms) ROLLBACK ↳ app/controllers/media_controller.rb:26:in `create' Rendering layout layouts/application.html.erb Rendering media/new.html.erb within layouts/application MediaType Load (1.3ms) SELECT "media_types".* FROM "media_types" ↳ app/views/media/_form.html.erb:35 BookGenre Load (1.3ms) SELECT "book_genres".* FROM "book_genres" ORDER BY "book_genres"."name" ASC ↳ app/views/media/_form.html.erb:42:in `map' Rendered media/_form.html.erb (Duration: 48.9ms | Allocations: 8316) Rendered media/new.html.erb within layouts/application (Duration: 50.5ms | Allocations: 8853) Rendered layout layouts/application.html.erb (Duration: 85.5ms | Allocations: 20627) Completed 422 Unprocessable Entity in 181ms (Views: 85.5ms | ActiveRecord: 31.2ms | Allocations: 44624) 问题是,保存失败,浏览器中显示的错误始终是“媒体类型必须存在”。 我认为这意味着它无法创建 Medium,除非附加到它的 media_type 已经存在。 但我认为这就是模型中 before_save 块的目的。 求求各位大神们,我错过了什么? 瑞安? 瑞恩·贝茨,你在吗? 更新:我发现如果我在表单中选择media_type同时输入new_media_type_name,它会创建新的media_type并将新的media_type设置为新媒体中的media_type参考对象。 要在 Rails 中创建嵌套记录,您可以使用 accepts_nested_attributes 在模型中创建 setter: class Medium < ApplicationRecord # ... belongs_to :media_type accepts_nested_attributes_for :media_type, reject_if: :all_blank? end 要在表单中创建输入,请使用 fields_for: <div> <div class="field"> <%= form.label :media_type_id, style: "display: block" %> <%= form.collection_select :media_type_id, MediaType.all, :id, :name, prompt: "Select a Media Type" %> </div> <fieldset> <legend>Or create one</legend> <%= form.fields_for(:media_type) do |media_type_form| %> <div class="field"> <%= media_type_form.label :name %> <%= media_type_form.text_input :name %> </div> <% end %> </fieldset> </div> 然后,您可以通过传递哈希选项将控制器中的嵌套属性列入白名单: def medium_attributes params.require(:medium) .permit( :foo, :bar, :baz, media_type_attributes: [:name] ) end
问题 我有一个返回 17 条记录的查询。 当我将 MyBatis 与带有 的地图一起使用时,它返回 6 条记录。请注意,我的其他地图不会发生这种情况,我有很多
我一直在尝试运行此查询来获取balance-prop的PropValue,其中userId等于user.id我的关系如下: Prop 到 PropValue - 1-M PropValue 给用户 - M-M 到
在下图中我没有报告这样的事实:class3的type:tip属性是一个枚举,可以采用两个值st或pt。我的问题是,这个表示可以吗...
我发现将聚合定义为“我们将那些对象具有独立生命周期,但有所有权,并且子对象不能属于另一个父对象的关系称为聚合...
在活动模型序列化器中..假设我有 CompanySerializer 和 EmployeeSerializer。 在 CompanySerializer 上,我有一个现场首席执行官,我想在其中呈现与 EmployeeSerializer 的关联,但是......
Rails 多对多关联:每个组织强制使用唯一的电子邮件,但不强制执行属于不同组织的相同电子邮件
在这里,我通过会员资格在用户和组织之间创建了多对多关联,它工作正常,但我想要的是我想要插入相同的用户(即具有相同电子邮件的用户)...
Rails own_to 包括选择查询 - ActiveModel::MissingAttributeError
我有两张桌子: 班级订单 < ActiveRecord::Base has_many :order_lines end class OrderLine < ActiveRecord::Base belongs_to :order end I have a workflow in the code that generates b...
我有景点和场地模型。 他们的协会是: 景点 所属:场地 场地 has_many :景点,依赖: :nullify 我正在使用Friendly_id gem 向两者添加slugs。他们...
我想在同一关系上添加多个关联类,以管理学生和课程之间的缺勤和群体情感,我读到关联类是对关系的描述,...
据我了解,关联类是基于用属性来描述两个类之间的关联,一般来说它们在以下情况下使用: 基数是多对多 万一...
专业化完全脱节。我知道涉及 s1 和 c2 的每个关联 a1 每年都必须是唯一的,即不能有两个与 c2 关联的 s1 实例具有相同的年份...
我知道在类图中关联类和真实类之间的区别在于依赖关系。也就是说,关联类取决于它所连接的实例是否存在...
我想在Weka 3.8.0中运行apriori算法后得到每行生成规则的前提和结果。 apriori.setNumRules(NUMBER_OF_RULES); 先验。
我对 Ruby on Rails 相当陌生,我显然有一个活动记录关联问题,但我无法自己解决它。 给定三个模型类及其关联: # application_for...
我有两个套餐,分别称为“乘客”和“预订”。他们有一对多的关系。当我尝试在他们的两个文件中进行处理时,我遇到了循环依赖错误。然后我尝试了限制...
布尔值或类型属性可以影响其可以具有的关联数量吗?我怎样才能做到这一点,例如,如果布尔属性设置为 1,则意味着 e3 可以与 w...
类的特化,继承父类的所有属性和关联。专业化可以不参与父类的关联吗? 示例:一名员工和他的