Самый лучший способ Rails обслуживать статическую домашнюю страницу, если не залогинен - PullRequest
0 голосов
/ 15 декабря 2010

Я экспериментирую с несколькими способами сделать это, но просто подумал, что я попрошу галерею.

Я хочу, чтобы корневая страница моего приложения (/) была одной из двух, в зависимости от того, вошел ли пользователь в систему или нет.

Если они не вошли в систему, я хочу заполнить статическую страницу некоторой статической информацией и формой входа.

Если они вошли в систему, я хочу, чтобы они обслуживались главной страницей моего приложения (/invoices/).

Я использую authlogic для управления входом пользователя в систему.

Некоторые из идей, которые у меня были для этого, кажутся излишне запутанными (а это Rails - это должно быть просто, не так ли?), И я думаю, кто-то уже знает лучший способ.

Ответы [ 3 ]

1 голос
/ 15 декабря 2010

Я бы добавил следующее определение метода в контроллер, чтобы определить макет там. Если поведение будет глобальным, тогда application_controller будет местом для определения этого метода.

layout :choose_layout

def choose_layout
    if current_user
      return 'user_view'
    end
    return 'non_user_view'
 end
1 голос
/ 15 декабря 2010

Я думаю, что это отвечает на ваш вопрос: Защита контента с помощью AuthLogic

Это самый чистый способ того, что вы ищете, и стандартный способ.

1 голос
/ 15 декабря 2010

homepage_controller

def index
 respond_to do |format|
  if current_user
    format.html { render :partial => 'view', :layout => 'nonuser' }
  elsif !current_user
    format.html { render :partial => 'view', :layout => 'user' }
  end
end

Что-то в этом роде?

...