Я пытаюсь использовать почтальон для отправки формы в рельсах.У меня есть эти параметры
{
"book": {
"title": "rrewr",
"media": {
"name": "hello",
"format": "jpg"
}
}
}
При отправке этих параметров.У меня есть этот код для создания книги в моем контроллере
class Admin::BookController < ApplicationController
def create
@book = Book.new(book_params)
if(@book.save)
# redirect_to @post
end
end
private def book_params
params.require(:book).permit(:title, :media => [:name, :format])
end
end
У меня есть отношение один к одному с книгами к СМИ.Но когда я получаю запрос.Я получил эту ошибку <ActiveRecord::AssociationTypeMismatch: Media(#70348614328640) expected, got {\"name\"=>\"hello\", \"format\"=>\"jpg\"} which is an instance of ActiveSupport::HashWithIndifferentAccess(#47385709875460)>
Я уже ищу это в документации по rails и даже в Google, но не могу найти ту же самую мою проблему.У меня есть эта модель для книги и СМИ
class Book < ApplicationRecord
belongs_to :media
end
class Media < ApplicationRecord
has_one :book
end
У меня есть эти миграции.Пожалуйста, поправьте меня, если я ошибся.Я не могу определить, какая часть моего кода неверна, или у меня отсутствует код для добавления.
class CreateBooks < ActiveRecord::Migration[5.2]
def change
create_table :books do |t|
t.string :title
t.references :media, index: true, foreign_key: true
t.timestamps
end
end
end
class CreateMedia < ActiveRecord::Migration[5.2]
def change
create_table :media do |t|
t.string :name
t.string :format
t.timestamps
end
end
end