Как добавить пути загрузки image / template / js / css на основе переменной в контроллере приложения? - PullRequest
1 голос
/ 04 января 2011

Итак, у меня есть группа партнеров, чьи шаблоны и изображения хранятся под каталогами view, public / images, public / stylesheets, public / javascripts.

Например, изображения для партнера 'foo'хранятся в public/images/foo

Этот партнер является переменной экземпляра @partner, которая доступна на уровне приложения.

Проблема в том, что я делаю это везде: <%= image_tag "/images/#{@partner}/image.jpg" %> или в пределах location_controller: <% redirect_to "/locations/#{@partner}/index" %> ...

Одна из причин вопроса о пути загрузки вместо использования хелперов: нам нужно специально <% render :template => "/locations/#{@partner}/index" %>, так как Rails ищет в / location / index по умолчанию.

Как я мог бы упростить это для себя?Как я могу добавить к пути загрузки, когда у меня есть @partner?

Использование Ruby 1.8.7 и Rails 2.3.4

1 Ответ

1 голос
/ 04 января 2011

Ваше перенаправление в контроллере действительно плохая практика

вы должны сделать что-то вроде:

redirect_to get_path(@partner)

тогда в вашем контроллере

def get_path(partner)
  case partner
  when "partner1"
    partner1_path
  ...
  end
end

Что касается ваших фотографий, вы должны создать помощника.

def get_pic(partner, image)
  image_tag "/images/#{partner}/#{image}"
end

А по вашему мнению

<%= get_pic(@partner, "image.jpg" %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...