2014-06-20 3 views
0

Я вручную определяю путь в помощнике рельсов, поскольку у меня были некоторые конфликты при использовании пули для URL-адреса. Это работает довольно хорошо, но теперь я внезапно получаю ошибку «неправильное количество аргументов (1 для 0)» для нее.Неверное количество аргументов после определения пути в рельсах

В помощнике статьи:

def edit_article_path() 
"/articles/#{@article.id}/edit" 
end 

Любая помощь будет оценена.

+3

Держу пари, вы называете 'edit_article_path' с аргументом, но не определяет его в методе. –

+0

Да, ты прав, я только что заметил это. – Terryfrancis

ответ

0

Вы не должны полагаться на переменную @article, потому что ваш метод является помощником, к которому можно получить доступ во всех точках вашего просмотра, а некоторые (большинство?) Представлений могут не иметь набор переменных @article.

Я рекомендую вам использовать эту реализацию вместо:

def edit_article_path(article) 
    "/articles/#{article.try(:id) || article}/edit" 
end 

Используйте это так:

# view 
link_to article.title, edit_article_path(article) 
# or 
link_to article.title, edit_article_path(article.id)