特定のリンクをクリックすると、ブラウザに次の一般的なエラー メッセージが表示されます。
{:action="edit", :controller="timesheets", :incident_id=>nil} に一致するルートはありません
リンクを含むページのコードは次のとおりです (新しいレコードを作成するためのパスを含む)
<div style="float:left;padding:25px;">
<p><%= link_to "Add a Command Officer", new_incident_timesheet_command_officer_path %></p>
</div>
リンクをクリックする前に、ブラウザーの URL は次のように表示されます。
ローカルホスト:3000/インシデント/197/タイムシート/編集
そして、上記のブラウザの URL は完全に理にかなっています。
「指揮官を追加」へのリンクにマウスを合わせると、ブラウザーの下部に次のように表示されます: localhost:3000/incidents/197/timesheets/command_officers/new
しかし、それをクリックすると、冒頭で述べたルーティング エラーが表示されます。Command_Officers_controller とルーティング ファイルのコードを次に示します。
誰かが私を助けるために必要な情報をすべて含めたと思いますが、何か不足している場合はお知らせください. 助けてくれてありがとう
Routes.rb
root :to => "incidents#index"
resources :users
resources :profiles
resources :incidents do
resource :mat_list
member do
post :send_notice
end
member do
get :changestatus
end
resource :timesheet do
resources :command_officers
resources :fire_chiefs
resources :fire_fighters
resources :safety_officers
resources :emts
resources :hazmat_specialists
resources :command_vehicles
resources :engines
resources :emergency_supports
resources :hazmat_units
resources :field_units
resources :pumpers
resources :tankers
resources :rescue_units
resources :ladder_truck75s
resources :ladder_truck150s
end
end
resource :session do
member do
get :resetpass
post :resetpass
end
end
command_officers_controller.rb
def new
@command_officer = CommandOfficer.new
@timesheet = Incident.find(params[:incident_id]).timesheet
respond_to do |format|
format.html # new.html.erb
end
end
# GET /command_officers/1/edit
def edit
@command_officer = CommandOfficer.find(params[:id])
end
# POST /command_officers
# POST /command_officers.xml
def create
# @new_command_officer = CommandOfficer.new(params[:command_officer])
@timesheet = Incident.find(params[:incident_id]).timesheet
@command_officer = @timesheet.command_officer.build(params[:command_officer])
respond_to do |format|
if @command_officer.save
format.html { redirect_to(edit_incident_timesheet_path, :notice => 'Command officer was successfully created.') }
else
flash[:error] = "What happened?"
format.html { render :new }
end
end
end