努力让 rails 6 API 应用程序以我想要的方式运行



这是我的第一个rails应用程序,一个我正在构建的仅限API的应用程序。假设您有一个名为"数据"的模型,它看起来像这样:

class Data < ApplicationRecord
belongs_to :x, class_name: 'Datum'
belongs_to :y, class_name: 'Datum'
end

基准模型如下所示:

class Datum < ApplicationRecord
belongs_to :data
end
">

基准面"有一个名为"值"的字符串属性。基本上,当有人点击"数据"控制器以创建新数据时,他们将 :x 和 :y 作为字符串传入,但随后控制器拦截这些字符串并创建两个新基准,其中"value"属性设置为参数 [:x],一个带有参数 [:y],以及 Data.x -> 基准...我已经用了几个小时,我无法让x_id和y_id设置任何我尝试的方式。

我认为您应该在数据和基准面之间创建has_many关系

数据模型

class Data < ApplicationRecord
has_many :datums
end

基准模型

class Datum < ApplicationRecord
belongs_to :data
end

在数据控制器(创建方法(中,您可以创建@data和 2 个基准面记录,如下所示

def create
@data = Data.new(data_params)
@datum_x = @data.datums.create(value: params[:x])
@datum_y = @data.datums.create(value: params[:y])
...
end

只需提供foreign_key:

class Data < ApplicationRecord
belongs_to :x, class_name: 'Datum'
belongs_to :y, class_name: 'Datum', foreign_key: 'y_id'
end

最新更新