2013-09-12 12 views
0

У меня есть маршруты, определенные какRails варианты URL на основе атрибута модели

scope ':cityname' do 
    resources comments 
end 

Примечание cityname = comment.user.cityname так что URL-хелперов, такие как comment_path(@comment) могут создавать ссылки, как

/newyork/comments/1 
/boston/comments/2 
/miami/comments/3 

Как установить этот параметр :cityname URL-адрес, основанный на атрибут модели?

Я нашел родственный вопрос здесь: default_url_options and rails 3

Спасибо!

ответ

1

Вы можете попробовать что-то вроде этого

class ApplicationController < ActionController::Base 

    def url_options 
    { :cityname => @comment.user.cityname }.merge(super) 
    end 

end 

class YourController < ... 

def calledaction 
    @comment = Comment.find(1) 
end 
end 
+0

спасибо, но это работает Как бы на индексной странице 100 комментариев связей со всеми различными citynames? то есть есть ли способ обойти ApplicationController вообще? –

+0

Он должен быть переопределен в контроллерах, поэтому вы можете поместить эту функцию внутри своих конкретных контроллеров, если вы этого не хотите. – techvineet

+0

все еще, как это работает на индексной странице со 100 комментариями, со всеми ** РАЗЛИЧНЫМИ ** городскими именами? Здесь у вас нет ни одного @comment, а массив комментариев, и как здесь может помочь контроллер? –

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