Ich erstelle eine Website mit Ruby on Rails. Ich traf ein Problem, das ich brauche, um meine Daten als Text auf meiner Web-Seite zum Beispiel anzeigen <h2><%[email protected]%></h2>
aber ich erhalte diesen FehlerRendern von Daten aus meinem Modell RAILS
NoMethodError in Permits#show
Showing C:/Users/GaryVLC/RubymineProjects/Parking_and_Safety_3/app/views/permits/show.html.erb where line #7 raised:
undefined method `permitstart' for #<Permit::ActiveRecord_Relation:0xb69e290>
Ich bin nicht sicher, ob ich die richtigen Sachen in meinem Controller bin inputing. Kannst du bitte einen Blick darauf werfen? Jede Hilfe wird geschätzt!
Dies ist die Web-Seite, die ich meine Daten übertragen wollen (show.html.erb)
<% provide(:title, 'New Permit') %>
<h1>Permit Application</h1>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<h2><%[email protected]%></h2></br>
</div>
</div>
Dies ist die Web-Seite, dass die Schaltfläche Klirren in die (show.html.erb)
<h2>My Permits</h2>
<table>
<tr>
<th>Permit Start Date</th>
<th>Permit End Data</th>
<th>Action</th>
<th> </th>
</tr>
<% @permits.each do |permit| %>
<tr>
<td><%= permit.permitstart %></td>
<td><%= permit.permitend %></td>
<td><%= link_to 'Detail', viewpermit_path(permit) %></td>
<td><%= link_to 'Edit', edit_permit_path(permit) %></td>
</tr>
<% end %>
</table>
Das ist mein erlaubt Controller
class PermitsController < ApplicationController
before_action :set_permit, only: [:destroy]
def index
@permits = Permit.where(:user_id => current_user.id)
end
def new
@permits = Permit.new
end
def create
@permits = current_user.permits.build(permit_params)
if @permits.save
redirect_to invoice_path
else
render 'new'
end
end
def destroy
Permit.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 confirm
@fields = %i[vehicle_type, carplate, studentid, name, department, permitstart, permitend]
@permit = current_user.permits.build(permit_params)
render :new and return unless @permit.valid?
end
def show
@permits = Permit.where(:user_id => current_user.id)
end
def update
@permits = Permit.where(user_id: current_user).take
respond_to do |format|
if @permits.update(permit_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
@permits = Permit.find(params[:id])
#@permits = Permit.find_or_initialize_by(user_id: params[:id])
end
def detail
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
Das ist mein route.db
Rails.application.routes.draw do
resources :users
resources :permits do
collection do
post :confirm
end
end
resources :visitor_permits
root 'static_pages#home'
get 'viewpermit' =>'permits#show'
get 'invoice' => 'permits#invoice'
get 'payment' =>'transaction#new'
get 'show_visitor_permit' =>'visitor_permits#show'
get 'show_permit' =>'permits#index'
get 'visitorpermit' => 'visitor_permits#new'
post 'createpermit' => 'permits#create'
get 'homepage/index'
post 'permits' => 'permits#create'
get 'permitapplication' => 'permits#new'
get 'adminlogin' => 'admin_controller#index'
get 'patrollogin' => 'patrol_officer_controller#index'
get 'createcitation' => 'citations#new'
get 'contact'=> 'static_pages#contact'
get 'about' => 'static_pages#about'
get 'signup' => 'users#new'
get 'help' => 'static_pages#help'
post 'users' =>
'users#create'
get 'login' => 'sessions#new' #Page for a new session
post 'login' => 'sessions#create' #Create a new session
delete 'logout'=>'sessions#destroy' #Delete a session
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end
Sieht aus wie Ihre Show-Aktion ist setu p falsch (es sollte normalerweise einen einzelnen Datensatz/ein einzelnes Objekt finden, aber eine Sammlung zurückgeben). Sehen Sie sich die unten stehende Dokumentation und die @richardpeck-Antwort an. http://guides.rubyonrails.org/getting_started.html#showing-articles – user3366016
können Sie die Params posten, wenn Sie auf "Detail" in der Konsole klicken, bitte? –
Entschuldigung, was meintest du die Params bestanden? –