Ich implementiere eine Website mit Ruby on Rails. Ich habe ein Problem, dass ich keine neuen Daten erstellen und in meinem Modell speichern kann. Der Fehler, den ich bekam, ist der, auf den der Fehler auf @vpermits = current_user.vpermits.build (vpermit_params) zeigte. Hat jemand eine Idee zu dem, was ich falsch gemacht habe?Kann keine Datenschienen erstellen, kein Methodenfehler
NoMethodError in VisitorPermitsController#create
undefined method `vpermits' for #<User:0x9b7b478>
def create
@vpermits = current_user.vpermits.build(vpermit_params)
if @vpermits.save
redirect_to @vpermits
else
Das ist mein visitor_permits_controller.rb
class VisitorPermitsController < ApplicationController
before_action :set_vpermit, only: [:destroy]
def index
@vpermits = VisitorPermit.where(:user_id => current_user.id)
end
def new
@vpermits = VisitorPermit.new
end
def create
@vpermits = current_user.vpermits.build(vpermit_params)
if @vpermits.save
redirect_to @vpermits
else
render 'new'
end
end
def destroy
VisitorPermit.destroy_all(user_id: current_user)
respond_to do |format|
format.html { redirect_to root_path, notice: 'Permit was successfully canceled.' }
format.json { head :no_content }
end
end
def show
@vpermits = VisitorPermit.find(params[:id])
end
def update
@vpermits = VisitorPermit.where(user_id: current_user).take
respond_to do |format|
if @vpermits.update(vpermit_params)
format.html { redirect_to root_path}
flash[:success] = "Permit successfully updated"
format.json { render :show, status: :ok, location: @user }
else
format.html { render :edit }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
def edit
@vpermits = VisitorPermit.find(params[:id])
end
private
# Use callbacks to share common setup or constraints between actions.
def set_vpermit
@vpermits = VisitorPermit.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def vpermit_params
params.require(:visitor_permit).permit(:vehicle_type, :name, :department, :carplate, :duration, :permitstart, :permitend)
end
end
Hat Ihr Benutzer 'has_many: vpermits'? Wie sieht Ihr Benutzermodell aus? Wie sieht Ihre Benutzerdatenbanktabelle aus? – spickermann
Ahhh, ich habe mein Problem schon gefunden. Das Problem ist, dass ich vpermits benutzte, die mein has_many ist Besucher_permits. Jetzt habe ich es geändert, danke für den Hinweis auf den Fehler. –