【发布时间】:2020-11-12 18:39:17
【问题描述】:
我是 Ruby on Rails 的新手,我正在开发一个后端 API。
目前,我有 2 个 Active Record 模型,分别称为 Book 和 Genre。
活动记录模型
class Book < ActiveRecord::Base
has_and_belongs_to_many :genres
end
class Genre < ActiveRecord::Base
hast_and_belongs_to_many :books
end
数据库架构模型
create_table :books do |t|
t.string "title"
end
create_table :genres do |t|
t.string "genre"
end
create_join_table :books, :genres do |t|
t.index [:book_id, :genre_id]
t.index [:genre_id, :book_id]
end
REST POST 请求
# POST /book
def create
book= Book.new(books_params)
if book.save
render json: {status: 'SUCCESS', message:'Book Saved', data: book},status: :ok
else
render json: {status: 'ERROR', message: 'Booknot saved', data: book.errors}, status: :unprocessable_entity
end
end
private
def books_params
params.require(:book).permit(:title)
end
问题
我想发出一个 HTTP Post 请求来创建一本具有流派的新书。我已经测试了书的插入(没有流派,只是传递书名),它工作得很好。不过我还想添加一些流派类别。
【问题讨论】:
-
欢迎来到 Stack Overflow!您的问题部分中似乎没有具体的、可回答的问题,在这种情况下,社区可能很难给出具体的答案。你都尝试了些什么?您是否遇到特定错误或问题?您应该edit您的问题包括您迄今为止尝试自己实施的任何内容,以及为什么/如何在您的情况下不起作用。
-
@Hoppeduppeanut 谢谢!我想要实现的是存储从前端表单发送的数据。在“问题”部分,我说过我尝试发送书籍数据(没有流派数组),到目前为止它工作得很好。但是,现在我想创建一本带有流派数组的新书,用于实例流派_id [1, 2]。我应该怎么做才能将流派存储在“def create”部分? book = Book.new(books_params) 只创建一本新书,但新创建的书没有在连接表中分配其流派。另外,我认为我需要先在流派表中创建流派。
标签: mysql ruby-on-rails ruby activerecord backend