Ich versuche, das Namensfeld eines Modells mit dem Juwel best_in_place zu bearbeiten, um Elemente direkt in der Zeile zu bearbeiten. Wenn ich das versuche, bekomme ich einen Fehler 422 Unprocessable Entity.Rails best_in_place Unprocessable Entity
Ich habe einige Nachforschungen gemacht und herausgefunden, dass der Controller in der Antwort nicht nur das Namensattribut, sondern auch die Gruppe und einige andere Attribute erwartet.
["Group must exist","Lumo can't be blank","Lumo is not a number"]
Ich habe meinen Controller in der richtigen Weise eingerichtet (denke ich).
materials_controller.rb
def update
@material = Material.find(params[:id])
if params[:commit] == "Save" then
success = @material.update(material_params)
params[:create_pure_composition] = false
else
@material = Material.new(material_params)
@material.user_id = current_user.id
success = @material.save
end
respond_to do |format|
if success
plot1 = prepare_e_plot(@material)
plot2 = prepare_st_plot(@material)
format.html { redirect_to @material }
format.json { render json: { plot1: plot1, plot2: plot2, status: 200 } }
else
format.html { render 'edit' }
format.json { respond_with_bip(@material) }
end
end
end
Gibt es eine Möglichkeit mit best_in_place diesen Wert zu senden, wenn Sie die Attributnamen zu aktualisieren? Ich habe es mit dem Attribut params von best_in_place versucht.
Dies hat keine zusätzlichen Parameter mit dem Update gesendet.
Hier ist, was das Materialmodell aussieht.
material.rb
class Material < ActiveRecord::Base
belongs_to :user
belongs_to :group
validates :name, presence: true, uniqueness: {scope: :user_id}
validates :lumo, presence: true, numericality: true
end
Weiß jemand, warum es nach anderen Attributen fragt und warum best_in_place diese nicht schickt?