我工作的兩個簡單的模型Rails的協會,未定義的方法
class Permit < ApplicationRecord
belongs_to :user, optional: true
validates :user_id, presence: true
end
class User < ApplicationRecord
has_many :permits
has_secure_password
end
在軌控制檯,我做了以下
user = User.find(10)
哪一個用戶對象分配給用戶。 但是,當我想創建一個允許用戶它給這個錯誤
NoMethodError in PermitsController#create
undefined method `Permit' for #<User:0xaaa3528>
如何解決這個問題呢?謝謝!
這是我permit_controller我認爲這個問題是在創建操作
class PermitsController < ApplicationController
before_action :set_permit, only: [:show, :destroy]
def index
@permits = Permit.all
end
def new
@permits = Permit.new
end
def create
@permits = user.permits.create(permit_params)
if @permits.save
redirect_to @permits
else
redirect_to contact_path
end
end
def destroy
Permit.destroy_all(user_id: 1)
respond_to do |format|
format.html { redirect_to users_url, notice: 'Permit was successfully canceled.' }
format.json { head :no_content }
end
end
def show
@permits = Permit.find(params[:id])
end
def update
respond_to do |format|
if @permits.update(user_params)
format.html { redirect_to @user, notice: 'Permit was 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
private
# Use callbacks to share common setup or constraints between actions.
def set_permit
@permits = Permit.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def permit_params
params.require(:permit).permit(:vehicle_type, :name, :studentid, :department, :carplate, :duration, :permitstart, :permitend)
end
end
許可證/新/ html.erb
<% provide(:title, 'New Permit') %>
<h1>Permit Application</h1>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<%= form_for(@permits) do |f| %>
<%= f.label :"Vehicle" %>
<%= f.text_field :vehicle_type, class: 'form-control' %>
<%= f
.label: 「車牌」 %> <% = f.text_field:carplate,class:'form-control'%>
<%= f.label :"Student ID" %>
<%= f.text_field :studentid, class: 'form-control' %>
<%= f.label :name %>
<%= f.text_field :name, class: 'form-control' %>
<%= f.label :"Department of applicant" %>
<%= f.text_field :department, class: 'form-control' %>
<%= f.label :permit_start %>
<%= f.date_select :permitstart, class: 'form-control' %>
<%= f.label :permit_end %>
<%= f.date_select :permitend, class: 'form-control' %>
<%= f.submit "Submit", class: "btn btn-primary" %>
<% end %>
您可以發佈您用來嘗試創建許可證的代碼嗎?這將是非常相關的信息 – Ren
我已經更新了我的問題:) –