Rails routing и идентификатор фрагмента URI

Когда я разрабатывал свои навыки RoR с некоторыми базовыми учебниками, у меня возникла проблема. То, что я пытаюсь достичь, - это комментарии, относящиеся к сообщениям, без отдельного индекса или отдельного представления. Эта часть была легкой.

Здесь очень сложно. Я хочу, чтобы post_comment_url возвращал адрес с идентификатор фрагмента: http://example.com/posts/2#comment-4. Это позволило бы мне использовать redirect_to в нем простейшую форму, без параметра :anchor (что было бы против рубинового способа упрощения вещей).

Как это сделать?

Ответ 1

Вместо того, чтобы изменять поведение по умолчанию Rails, вероятно, было бы лучше обойти ваши потребности в вспомогательном методе:

# in app/controllers/application_controller.rb
class ApplicationController
  helper :comment_link

  def comment_link(comment)
    post_comment_url(comment.post, comment, :anchor => "comment-#{comment.id}")
  end
end

Вызов helper позволит вам получить доступ к этому методу в ваших представлениях, а также ваши контроллеры.