Ich habe ein Benutzermodell, das zu Pay-Modell gehört. Wenn ein Benutzer erstellt wird, wird sein Attribut (Jahre) verwendet, um das Pay-Modell abzufragen und ein Objekt zurückzugeben, das eine Rate enthält. Alles funktioniert, wenn ich fragen über:SCHIENEN || ActiveRecord :: AssociationTypeMismatch: Fehler beim neuen Modellobjekt
class User < ApplicationRecord
belongs_to :pay
end
* CONTROLLER ACTIONS *
@user = User.new(user_params)
@user.pay = Pay.find(1)
=> #< Pay object returned with attributes....>
Aber die folgenden gibt einen Activerecord :: AssociationTypeMismatch: ....... das ist eine Instanz von Pay :: ActiveRecord_Relation
@user = User.new(user_params)
@user.pay = Pay.where("years = ?", @user.years) #FAILS
Auch versucht die folgende ....
@user.pay = Pay.where(years: @user.years)
@user.pay = Pay.where(years: params[:years]
Und auch einen String inputing ....
@user.pay = Pay.where(years: "3")
Also die Abfrage gibt eine Instanz von ActiveRecord_Relation anstelle eines AssociationType zurück?
Dank Iceman wäre. Ich war verdammt nah dran, als ich versuchte, limit (1) anzuhängen, was immer noch fehlschlug. Ihre Lösung funktioniert und ich habe ein wenig mehr über ActiveRecord gelernt. Prost Kumpel! – DawgOnKing
Froh, es hat funktioniert, viel Glück. – Iceman
FWIW '.limit (1)' gibt immer noch eine _one_ ActiveRecord-Relation zurück, die man sich als Array ohne ActiveRecord vorstellen kann. – whodini9