Ich bin neueren zu Schienen und nicht sicher, wie man das macht. Ich habe das Standardmodell Benutzer und in Benutzer habe ich 10 verschiedene Attribute. Die 10 Attribute enthalten das Attribut für den Benutzer, um das Wetter auszuwählen, das er vom Typ "a" oder vom Typ "b" ist. Wenn ein Nutzer auf die Anmeldung klickt, möchte er, dass er das Wetter auswählt, das er "a" oder "b" eingegeben hat. Wenn sie den Typ "a" haben, möchte ich sie umleiten, um nur 5 der Attribute auszufüllen. Wenn sie vom Typ "b" sind, möchte ich, dass sie die anderen 4 Attribute ausfüllen. Meine Frage ist, wie erstelle ich die Logik im Controller, wo er mich nach der ersten Frage in das richtige Formular umleitet.Ruby auf Schienen: Model Form
[Bearbeitet]
Würde dies logisch sein?
class UsersController < ApplicationController
def new
@user = User.new
end
def create
@user = User.new(personality_selection)
if @user.save
redirect_to root_path
else
render :new
end
end
private
def personality_selection
params.require(:user).permit(:personality_a_or_b)
if params[:personality] == 'a'
redirect_to type_a_path
elsif params[:personality] == 'b'
redirect_to type_b_path
end
end
def type_a
params.require(:user).permit(:trait2, :trait3, :trait4 :trait5, :trait6)
end
def type_b
params.requrie(:user).permit(:trait7, :trait8, :trait9, :trait10)
end
end
Ich weiß, dass dies nicht richtig ist, und es ist nur ein Beispiel, aber würde es so aussehen? –
Ich habe meine Antwort präzisiert. Viele Möglichkeiten, dies zu tun. Sie könnten auch die beiden Persönlichkeitsformen zu einem zusammenfassen und dann die gewünschten Felder bedingt einblenden. –
Ich schätze Ihre Hilfe. Ich lerne Rails in einem angemessenen Tempo, aber es gibt immer Dinge, die mich stümpfen. Nochmals vielen Dank für die ausführliche Antwort. –