Я пытаюсь обновить запись с помощью кнопки, заставив пользователя-администратора подтвердить запись, нажав кнопку подтверждения отправки в этой форме, но она просто обновит первую запись в базе данных, а не конкретную. Могу ли я поместить «hour.id» в раздел form_for, чтобы он обновил запись, которую я хочу?
представление формы index.html.erb
<% @allhours.each do |hour| %>
<tr id="dashfield">
<td><%= hour.user.first_name + " " +hour.user.last_name %></td>
<td><%= hour.assignment %></td>
<td><%= hour.hours %></td>
<td><%= hour.supervisor %></td>
<td><%= hour.date %></td>
<td><%= link_to "confirm", edit_hour_path(hour.id, :status => 'confirmed')%></td>
</tr>
<% end %>
Контроллер
def index
@allhours = HourLog.where(status:'pending')
end
def update
@hour = HourLog.find_by(status:'pending')
@hour.update_attribute(update_hour_params)
redirect_to '/dashboard/hours'
end
def edit
@hour = HourLog.find(params[:id])
@hour.update_attributes(update_hour_params)
redirect_to '/dashboard/hours'
end
модель hour_log
class HourLog < ActiveRecord::Base
belongs_to :user
end
маршруты
Rails.application.routes.draw do
root 'welcome#index'
get '/signup' => 'users#new'
resources :users
get '/dashboard/users' => 'users#index'
put '/dashboard/users' => 'users#update'
get '/login' => 'sessions#new'
post '/login' => 'sessions#create'
delete '/logout' => 'sessions#destroy'
get '/dashboard' => 'hours#new'
get '/dashboard/hours' => 'hours#index'
put '/dashboard/hours' => 'hours#update'
resources :hours
Спасибо!