0
Rails新手在這裏。我創建了一個基本網站,用於跟蹤輪班期間的事件。我創建了模型並嵌套它們。但是,我完全不瞭解連接。 當我創建鏈接到一個轉變,我得到下面的錯誤形式嵌套事件:表格,嵌套資源和路由錯誤Rails 4
No route matches [POST] "/shifts/events" on url
http://localhost:3000/shifts//events
應該是http://localhost:3000/shifts/3/events/1
我覺得
_form.html.erb
<%= form_for shift_events_path(@shift) do |f| %>
<% if @event.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@event.errors.count, "error") %> prohibited </h2>
<ul>
<% @event.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :time_s %><br>
<%= f.time_select :time_s %>
</div>
<div class="field">
<%= f.label :time_f %><br>
<%= f.time_select :time_f %>
</div>
<div class="field">
<%= f.label :odometre %><br>
<%= f.number_field :odometre %>
</div>
<div class="field">
<%= f.label :location %><br>
<%= f.text_field :location %>
</div>
<div class="field">
<%= f.label :activity %><br>
<%= f.text_field :activity %>
</div>
<div class="field">
<%= f.label :description %><br>
<%= f.text_area :description, rows: 4 %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
根。 rb
resources :shifts do
resources :events#,
end
events_controller.eb
條class EventsController < ApplicationController
before_filter :get_shift
before_action :set_event, only: [:show, :edit, :update, :destroy]
# GET /events
# GET /events.json
def index
@events = @shift.events
end
# GET /events/1
# GET /events/1.json
def show
end
# GET /events/new
def new
@event = @shift.events.build
end
# GET /events/1/edit
def edit
end
# POST /events
# POST /events.json
def create
@event = @shift.events.build(event_params)
respond_to do |format|
if @event.save
format.html { redirect_to shift_event_path, notice:
'Event was successfully created.' }
format.json { render action: 'show', status: :created, location: @event }
else
format.html { render action: 'new' }
format.json { render json: @event.errors, status: :unprocessable_entity }
end
end
end
# PATCH/PUT /events/1
# PATCH/PUT /events/1.json
def update
respond_to do |format|
if @event.update(event_params)
format.html { redirect_to shift_event_path, notice:
'Event was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: 'edit' }
format.json { render json: @event.errors, status: :unprocessable_entity }
end
end
end
# DELETE /events/1
# DELETE /events/1.json
def destroy
@event.destroy
respond_to do |format|
format.html { redirect_to shift_event_path }
format.json { head :no_content }
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_event
@event = @shift.events.find(params[:id])
end
def get_shift
@shift = Shift.find(params[:shift_id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def event_params
params.require(:event).permit(:time_s, :time_f, :odometre,
:location, :activity, :shift_id)
end
end
路線
shift_events_path GET /shifts/:shift_id/events(.:format) events#index POST /shifts/:shift_id/events(.:format) events#create new_shift_event_path GET /shifts/:shift_id/events/new(.:format) events#new edit_shift_event_path GET /shifts/:shift_id/events/:id/edit(.:format) events#edit shift_event_path GET /shifts/:shift_id/events/:id(.:format) events#show PATCH /shifts/:shift_id/events/:id(.:format) events#update PUT /shifts/:shift_id/events/:id(.:format) events#update DELETE /shifts/:shift_id/events/:id(.:format) events#destroy shifts_path GET /shifts(.:format) shifts#index POST /shifts(.:format) shifts#create new_shift_path GET /shifts/new(.:format) shifts#new edit_shift_path GET /shifts/:id/edit(.:format) shifts#edit shift_path GET /shifts/:id(.:format) shifts#show PATCH /shifts/:id(.:format) shifts#update PUT /shifts/:id(.:format) shifts#update DELETE /shifts/:id(.:format) shifts#destroy root_path GET / shifts#index
我的數字形式的第一行是錯誤的,但我不知道是什麼將其更改爲。其次,我認爲事件控制器中的某些連接是錯誤的。任何幫助,將不勝感激。
好的,但正如我所說,我在事件控制器中有連接錯誤。沒有路線匹配{:action =>「show」,:controller =>「events」,:shift_id =>「3」}缺少必需的鍵:[:id] – user3357855
首先閱讀此導軌指南可能是個好主意: http://guides.rubyonrails.org/getting_started.html#adding-a-second-model。本指南提供了嵌套模型的一個很好的例子。 –