Принимая во внимание ваши комментарии, вам нужен RedirectsController, и в вашем файле rout.rb вы получите:
map.connect '/:name', :controller => 'redirects', :action => 'show'
Вы должны убедиться, что этот маршрут идет после маршрутов вашего ресурса. В вашем RedirectsController метод show будет выглядеть примерно так:
def show
@landing_page = LandingPage.first(:conditions => {:name => params[:name]})
redirect_to @landing_page
end
Я не уверен, чего вы пытаетесь достичь на www.domain.com/landing_pages/1/, но используя ваш код в качестве примера, вы должны иметь следующее в вашем действии show LandingPagesController:
def show
@landing_page = LandingPage.find(params[:id])
@redcloth_landing_page = RedCloth.new(@landing_page.message).to_html
form = "<div id='form'>" << @landing_page.form << "</div>"
@redcloth_landing_page.gsub!("{Form}",form)
render :layout => false
end
Однако это решение не так хорошо, как раньше, потому что, если я не пропущу его, я не знаю, что вы можете ограничить маршрут к поддомену в 2.3.8. Не ограничиваясь поддоменами, вы должны убедиться, что ваши пользователи не использовали одно из имен ваших контроллеров в качестве слова целевой страницы, что усложняет вашу программу.
Существует плагин, называемый subdomain-fu, который должен позволять вам ограничивать ваши маршруты субдоменом. Проект находится по адресу https://github.com/mbleigh/subdomain-fu. Надеюсь, это поможет, если не сообщите мне.