Полная ошибка:Rails: Нет маршрут не соответствует ... отсутствуют необходимые ключи: [: ID]
No route matches {:id=>#<Reminder id: nil, medication: nil, time: nil, created_at: nil, updated_at: nil, user_id: 1>} missing required keys: [:id]
Вот код из index.html.erb, который вызывает ошибку:
<tbody>
<% @reminders.each do |reminder| %>
<tr <%= dom_id(reminder) %>>
<td><%= reminder.medication %></td>
<td><%= reminder.time %></td>
<td>
<%= link_to "Edit", edit_reminder_path(reminder) %>
or
<%= link_to 'Remove', reminder, method: :delete, data: { confirm: 'Are you sure?' } %>
</td>
</tr>
<% end %>
</tbody>
Модель:
class Reminder < ActiveRecord::Base
validates :medication, presence: true
belongs_to :user
end
class User < ActiveRecord::Base
has_many :reminders
end
Действие:
def index
@reminders = current_user.reminders
@reminder = current_user.reminders.new
end
def edit
end
Маршруты:
Medy::Application.routes.draw do
devise_for :users
resources :reminders
root 'reminders#index'
end
мне нужно что-то добавить к действию редактирования, чтобы сделать эту работу делать?
Ошибка произошла после того, как я изменил @reminders = Reminders.all
на @reminders = current_user.reminders
в действии индекса.
сделать 'edit_reminder_path (ID: reminder.id)' в вашей ссылке – Nithin
У ваших '@ напоминаний' есть объект, который не является БД.Вот почему у него есть id: nil', 'medicication: nil', и только' user_id' не 'nil'. Вы создали его, но не сохранили в БД, возможно, использовали 'Reminder.new' – Nermin
@Nermin - Напоминания были созданы с помощью эшафота. Ошибка начала происходить после того, как я изменил '' '@reminders = Reminders.all'''' '@reminders = current_user.reminders''' в действии индекса. – JeremyE