Есть ли лучший способ указать URL-адрес и метод, когда контроллер не соответствует модели в Rails 3.0 - PullRequest
0 голосов
/ 08 марта 2011

В Rails 3.0 у меня есть TagsController, который обрабатывает модель, которая называется не Tag, а ActsAsTaggableOn :: Tag, что означает, что URL-адреса генерируются неправильно: actions_as_taggable_on_tag_url вместо tag_url.

Это заставило меня написать эту мерзость в виде:

form_for @tag, :as => :tag, :url => @tag.new_record? ? tags_url : tag_url(@tag), :html => {:method => @tag.new_record? ? :post : :put}  do |form|
    ...

Есть ли лучший способ сделать это? Как-то сказать Rails, что контроллер для этого модуля назван по-другому?

Я знаю, что мог бы разделить это на два разных файла, но я бы не стал.

1 Ответ

0 голосов
/ 08 марта 2011

Я думаю, что не имеет никакого значения, что вы используете модель ActsAsTaggableOn :: Tag вместо Tag. Класс @tag будет иметь значение только. Если у @tag есть ID, тогда Update создайте. Попробуйте с общим синтаксисом form_for.

...