Ruby on rails 如何在RubyonRails中将子对象添加到父对象

Ruby on rails 如何在RubyonRails中将子对象添加到父对象,ruby-on-rails,class,model-view-controller,Ruby On Rails,Class,Model View Controller,我是rails的新手,所以这似乎是一件很容易做到的事情。我使用rails命令generatescaffold-workout-name创建了一个训练资源。然后,我用railsgmodel\u id创建了一个rails模型。在那之后,我增加了有许多要锻炼,属于几周 但是我有一些错误 路线 resources :workouts do post :addWeek, on: :member end 查看 = link_to "Add", add_week_workout_path(@workou

我是rails的新手,所以这似乎是一件很容易做到的事情。我使用rails命令generate
scaffold-workout-name
创建了一个训练资源。然后,我用
railsgmodel\u id
创建了一个rails模型。在那之后,我增加了
有许多
要锻炼,
属于
几周

但是我有一些错误

路线

resources :workouts do
  post :addWeek, on: :member
end
查看

= link_to "Add", add_week_workout_path(@workout), method: :post
控制器

def add_week
  @workout.weeks << Week.create
end
def添加_周
@锻炼周数路线

resources :workouts do
  post :addWeek, on: :member
end
查看

= link_to "Add", add_week_workout_path(@workout), method: :post
控制器

def add_week
  @workout.weeks << Week.create
end
def添加_周

@workout.weeks您可以简单地执行
@workout.weeks.create(attr1:value1,attr2:value2)
或其他方式(稍微混乱):
Week.create(attr1:value1,attr2:value2,workout:@workout)
这是正确的,那么我该如何安排此操作?使用put?操作目的和HTTP动词之间的映射如下:创建=>POST,更新=>put(或补丁),销毁=>DELETE,retrieve(read)=>GET()。我已使用put路由操作,然后将按钮链接到addWeek\u锻炼路径,但我没有得到任何路径匹配[GET]“/workouts/1/addWeek”,有什么建议吗?请求是作为GET发送的,使用
方法::post
作为您的
链接到
/
按钮到
的参数(请参阅文档的销毁操作示例:)您只需执行
@workout.weeks.create(attr1:value1,attr2:value2)
或其他方式(稍微混乱一点):
Week.create(attr1:value1,attr2:value2,count:@count)
这是正确的,那么如何路由此操作?使用put?操作目的与HTTP动词之间的映射如下:创建=>POST,更新=>put(或补丁),销毁=>DELETE,retrieve(read)=>GET()我已使用put发送操作,然后将按钮链接到addWeek\u workout\u路径,但我没有得到任何路径匹配[GET]“/workouts/1/addWeek”,有什么建议吗?请求作为GET发送,使用
方法::post
作为
链接到
/
按钮到
的参数(请参阅文档中的销毁操作示例:)