Was sollten die starken Parameter für meine chapters_controller
sein, wenn ich eine Book
Einheit und eine Einheit habe?Schienen Ember starke Parameter Klarstellung
Hinweis: Ich verwende JSON API.
In meinen chapters_controller
sollen meine starken Parameter sein:
:title, :order, :content, :published, :book, :picture
Oder sollte es sein:
:title, :order, :content, :published, :book_id, :picture
Wenn ich :book
statt :book_id
verwende, dann in meiner Ember Anwendung, wenn ich gehe, um ein neues Kapitel zu erstellen, kann ich es erstellen und dieses Kapitel dem übergeordneten Buch zuordnen, jedoch schlägt mein Test fehl:
def setup
@book = books(:one)
@new_chapter = {
title: "Cooked Wolf Dinner",
order: 4,
published: false,
content: "The bad wolf was very mad. He was determined to eat the little pig so he climbed down the chimney.",
book: @book
}
end
def format_jsonapi(params)
params = {
data: {
type: "books",
attributes: params
}
}
return params
end
...
test "chapter create - should create new chapter assigned to an existing book" do
assert_difference "Chapter.count", +1 do
post chapters_path, params: format_jsonapi(@new_chapter), headers: user_authenticated_header(@jim)
assert_response :created
json = JSON.parse(response.body)
attributes = json['data']['attributes']
assert_equal "Cooked Wolf Dinner", attributes['title']
assert_equal 4, attributes['order']
assert_equal false, attributes['published']
assert_equal @book.title, attributes['book']['title']
end
end
Ich bekomme einen Fehler in meiner Konsole sagen Association-Typ-Mismatch. meine Linie
Vielleicht:
book: @book
verursacht es?
Wie auch immer, Bauchgefühl sagt mir, ich sollte :book
in meinem chapters_controller
starken Parameter verwenden.
Es ist nur mein Test ist nicht bestanden, und ich bin mir nicht sicher, wie man den Parameter Hash für meinen Test zu übergeben.