Вы определили clock_in
с помощью post
http глагола, здесь:
resources :clock_events, except: [:destroy] do
member do
post 'clock_in', to: 'clocks#clock_in'
post 'clock_out', to: 'clocks#clock_out'
end
end
Но вы пытаетесь использовать глагол get
, как указано здесь:
Routing Error: No route matches [GET] "/clock_events/1/clock_in"
Вам нужно либо изменить свой путь, чтобы использовать глагол get
:
resources :clock_events, except: [:destroy] do
member do
get 'clock_in', to: 'clocks#clock_in'
post 'clock_out', to: 'clocks#clock_out'
end
end
, либо изменить свою ссылку (или любую другую информацию), чтобы использовать метод post
.
Кроме того, ваши действия clock_in
и clock_out
вызываются на контроллере clocks
, а не на контроллере clock_events
, как указано в вашей директиве to:
:
resources :clock_events, except: [:destroy] do
member do
post 'clock_in', to: 'clocks#clock_in'
post 'clock_out', to: 'clocks#clock_out'
end
end
Вы уверены?Вы не хотите использовать ClockEventsController
?Если это так, вы можете сделать:
resources :clock_events, except: [:destroy] do
member do
post :clock_in
post :clock_out
end
end
В этом случае вы получите:
clock_in_clock_event POST /clock_events/:id/clock_in(.:format) clock_events#clock_in
clock_out_clock_event POST /clock_events/:id/clock_out(.:format) clock_events#clock_out
clock_events GET /clock_events(.:format) clock_events#index
POST /clock_events(.:format) clock_events#create
new_clock_event GET /clock_events/new(.:format) clock_events#new
edit_clock_event GET /clock_events/:id/edit(.:format) clock_events#edit
clock_event GET /clock_events/:id(.:format) clock_events#show
PATCH /clock_events/:id(.:format) clock_events#update
PUT /clock_events/:id(.:format) clock_events#update