2014-01-24 2 views
0

поэтому я изучаю ROR, используя рельсы 4 и im, пытаясь проверить текущий домен в своем приложении и задавать настраиваемые сообщения для каждого домена.Rails - проверить домен для набора настраиваемых сообщений

У меня есть что-то подобное в мое приложение/просмотров/макеты/application.html.haml:

!!! 
%html 
    %head 
    //verify the domain here 
    //store in a var? 
    %meta{ content: 'text/html; charset=utf-8', 'http-equiv' => 'Content-Type' } 
    %meta{ content: 'Set the message according each domain here', name: 'description'} 

Кто-то может помочь?

ответ

0

Вы можете получить домен из объекта запроса, который доступен в просмотрах/контроллеры/помощниках:

request.domain 

Лучше попрактиковаться нам установить сообщения в действии контроллера, а затем просто отображать их в вид, например:

def my_action 
    @domain_message = get_domain_message(request.domain) 
end 

def get_domain_message(domain) 
    case domain 
    when 'example.com' then 'domain specific message' 
    when 'egzample.com' then 'another domain specific message' 
    end 
end 

Теперь @domain_message доступен для использования в представлении.

+0

Thaks !!! я пытаюсь теперь вызвать метод в моих взглядах вида/папке/index.html.haml используя следующую строку: '= @get_domain_message«domain'' , но это делать не работает и не имеет никаких сообщений об ошибках отображения –

+0

@wtkd, в примере я задал переменную экземпляра '@ domain_message', поэтому' @ get_domain_message' не будет работать. Переменная экземпляра должна быть задана в другом месте, например, в контроллере. – Mori

+0

ОК! он работает для меня, используя # {get_domain_message} спасибо! –

0

Вы можете определить хэш, как это:

messages = {"www.example.com" => "Message for www.example.com", "www.example2.com" => "Message for www.example2.com"} 

теперь вы можете отобразить сообщение с помощью этого:

messages[request.host] 
+0

Спасибо, человек !! ;) –

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