2012-05-10 3 views
0

У меня есть 2 модели со следующей ассоциацией.ссылка, редактировать другую модель

goal.rb

has_one :progress 

progress.rb

belongs_to :goal 

В индексной странице цель, у меня есть ссылка, предполагают, чтобы изменить запись о проделанной работе для этой конкретной цели, но я не мог» t получить его, чтобы найти правильный идентификатор записи записи прогресса. Мой код link_ приведен ниже. Он будет передавать идентификатор цели вместо правильного идентификатора хода.

приложение/просмотр/цели/index.html.erb

<%= link_to 'Progress', edit_progress_path(goal) %> 

Как я должен идти об этом.

спасибо.

Приветствия, Azren

+0

Какой из многих достижений вы хотите отредактировать? –

+0

В основном цель будет иметь только 1 прогресс. Поэтому я хотел бы отредактировать прогресс, который имеет тот же goal_id, что и цель. Если это имеет смысл. – Azren

+1

Тогда почему отношения 'has_many', а не' has_one'? –

ответ

2

Вы не должны пройти goal объект, а объект progress к edit_progress_path метода:

<%= link_to 'Progress', edit_progress_path(goal.progress) %> 
+0

спасибо, он работает :-) – Azren

4

Я любил использовать Rails "магии":

<%= link_to 'Progress', [:edit, goal.progress] %> 
+0

спасибо, он работает :-). Интересно, какой из них будет рельсами? Вышеупомянутый или этот? – Azren

+0

Шахта, конечно! :-) По правде говоря, использование '[: edit, goal.progress]' приводит к вызову 'edit_progress_path', но за сценой. Это полезно, когда вы создаете пути с длинными областями. – jdoe

Смежные вопросы