Рельсы: Форма регистрации доступна по другому маршруту - PullRequest
0 голосов
/ 12 июля 2011

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

Могу ли я изменитьтекущее представление регистрации (если так, как?), чтобы все еще использовать registrations_controller, или мне придется добавить избыточный код в мой application_controller, чтобы заставить это работать?

Я новичок в рельсах, так что говорите медленно,Пожалуйста.:)

В итоге, У меня есть работающая система, но я не знаю, как заставить регистрационную форму работать вне ее текущего местоположения.(Потому что я следовал учебным пособиям) ...

Используя devise и альтернативный регистратор_контроллера: Controller:

class RegistrationsController < Devise::RegistrationsController
  before_filter :get_teams
  def create
    build_resource

    if resource.save
      if resource.active_for_authentication?
        set_flash_message :notice, :signed_up if is_navigational_format?
        respond_with resource, :location => redirect_location(resource_name, resource)
      else
        set_flash_message :notice, :inactive_signed_up, :reason => resource.inactive_message.to_s if is_navigational_format?
        expire_session_data_after_sign_in!
        respond_with resource, :location => after_inactive_sign_up_path_for(resource)
      end
    else
      clean_up_passwords(resource)
      respond_with_navigational(resource) { render_with_scope :new }
    end
  end
...

private
  def get_teams
    @teams = Team.all.map{ |p| [p.team_name, p.id]}
  end
end

registrations.html.erb:

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
  <%= devise_error_messages! %>

  <p><%= f.label :email %><br />
  <%= f.email_field :email %></p>
  <p><%= f.submit "Sign up" %></p>
<% end %>

1 Ответ

0 голосов
/ 12 июля 2011

Я предполагаю, что вы перенаправляете на обратный отсчет с фильтром до ... что-то вроде:

class ApplicationController
  before_filter :redirect_to_countdown_if_offline

  def redirect_to_countdown_if_offline
    #do check & redirect
  end
end

, если это так, вам просто нужно установить skip_filter на контроллере регистрации

class RegistrationsController < Devise::RegistrationsController
  skip_filter :redirect_to_countdown_if_offline
  ...
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...