Генерация пути ссылки с параметрами - PullRequest
1 голос
/ 03 июня 2010

У меня есть модель со многими ассоциациями.

Пользователь: has_many =>: сообщения,: видео,: изображения и т. Д.

У меня есть вспомогательный метод, который получает одну из этих ассоциаций

draw_chart user.videos

def draw_chart(assoc)
  assoc.each do |a|
    link_to "update", [a.user, a], :method => :put, :remote => true, :confirm => 'orrly?'
  end
end

Проблема здесь в том, чтобы отправить дополнительные параметры для обновления действия.

Например, я хочу получить этот URL: /users/1/videos/2?status=done, но я не понимаю, как это реализовать, когда я использую [a.user, a] вместо user_videos_path(video, :status => 'done'). Но я не могу использовать последний, потому что это могут быть видео, картинки или что-то еще

Ответы [ 2 ]

3 голосов
/ 03 июня 2010

Я не буду использовать eval, как насчет этого

<%= link_to('update', self.send("user_#{a.class.name.pluralize}_path", a, , :status => 'done'), :method => :put, :remote => true, :confirm => 'orrly?')  %>
1 голос
/ 03 июня 2010

Единственное решение, которое я могу придумать, это странное:

link_to "update", eval("user_#{a.class.name.tableize}_path(#{a.school.id}, #{a.id}, :status => 'done')"), :method => :put, :remote => true, :confirm => 'orrly?'

но это выглядит грязно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...