My ModelRails ActiveRecord Wie fügt man ein zusätzliches Feld zu params.fetch (modelName) hinzu?
class User < ActiveRecord::Base
end
mein Controller
class UsersController < ApplicationController
...
end
Wenn ich zusätzlich Feldpost Aktion schreiben wie { "xx": 7 ...} {"user_email"=>"[email protected]", "user_pw"=>"123456", "xx"=>7, "controller"=>"users", "action"=>"create", "user"=>{"user_pw"=>"123456", "user_email"=>"[email protected]"}}
kann ich nicht gefunden das Attribut "xx => 7" im Attribut "user". Wie kann ich es nach param ["user"] ["xx"] verschieben.
Hier ist mein Code
wegen „xx“ ist nicht UserModel so Attribute, ich denke, dass Usercontroller Felder UserModel unter Verwendung aller Parameter automatisch zu filtern, wenn die controller mit Modellname mit dem gleichen Namensregel zugeordnet ist. Also fehlt mir im Benutzerknoten "xx".
class User < ActiveRecord::Base
# include fields: uid, user_name, user_mobile.
end
class UsersController < ApplicationController
def user_params
params.fetch(:user).extract!(:uid).permit!
end
def create
user = User.new(user_params)
user.save!
render :nothing => true, :status => 202
end
end
Ich kann einen Trick gesetzt wrap_parameter in Reglereinstellung
wrap_parameters :user, include: User.column_names << 'xx'
oder
wrap_parameters true
# but user node will be "true" => {"xxx": "test", "user_name": ... }, acception all field even if it's not UserModel attributes.
Schließlich möchte ich, dass die 'Nutzer' wrap_parameters ohne Setup alle Spalten enthalten, die Client senden Server. Ich möchte nicht wie include einrichten: [* column_names].
Ich fand, dass Wenn die Eigenschaft von JSON Anfrage Körper ist eines der Modell-Feld, wird es automatisch zum Benutzer Knoten bewegen. Ich möchte ein einzelnes Feld hinzufügen und es in Benutzerknoten bewegen, aber ich möchte Format wie {"Benutzer": {"xx": "123"}} – scott1028
@ scott1028 Können Sie Ihren Formular- und Controller-Code teilen? Dies sollte nicht der Fall sein, da Sie Params wie "id" => 1, "user" => {"id" => 2} 'haben könnten, wobei ein 'id' den 'user' Datensatz darstellt, aber der andere vollständig etwas anderes und es würde einen Konflikt verursachen. – Kkulikovskis