0
我在編輯best_in_place gem模型的名稱字段以直接編輯項目。當試圖這樣做時,我得到一個錯誤422不可處理的實體。Rails best_in_place無法處理的實體
我已經做了一些研究,並在響應中發現,控制器不僅期望name屬性,還包括組和其他一些屬性。
["Group must exist","Lumo can't be blank","Lumo is not a number"]
我以正確的方式設置我的控制器(我認爲)。
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
有沒有一種方式與best_in_place更新名稱屬性時發送這些值?我嘗試了best_in_place的params屬性。
<%= best_in_place @material, :name, as: :input, params: { group_id: @material.group_id } %>
這並沒有發送任何額外的參數與更新。
以下是Material模型的內容。
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
有沒有人知道它爲什麼要求其他屬性,爲什麼best_in_place不會發送這些信息?