QA@IT
«回答へ戻る

回答を投稿

Deviseでジェネレータが用意されているのはViewだけで、
ControllerやModelについては継承で作成します。
sign upの処理を変えたいならDevise::RegistrationsControllerDevise::SessionsControllerなどを継承したControllerを定義すればいい気がします。
下記のサイト等が参考になると思います。

また、デフォルトではsign inページのViewでsign upへのリンクが表示されています。これを削除するにはViewを上書きします。

app/views/devise/shared/というディレクトリを作成し、その中に_links.erbを入れます。(hamlやslimに変換しても構いません)

そして、_links.erb中の

<%- if devise_mapping.registerable? && controller_name != 'registrations' %>
  <%= link_to "Sign up", new_registration_path(resource_name) %><br />
<% end -%>

を削除してください。

Viewを大規模に変更する場合は、rails generate devise:viewsコマンドを実行するとデフォルトのViewが全て生成されます。

Deviseでジェネレータが用意されているのはViewだけで、
ControllerやModelについては継承で作成します。
sign upの処理を変えたいなら`Devise::RegistrationsController`か`Devise::SessionsController`などを継承したControllerを定義すればいい気がします。
下記のサイト等が参考になると思います。

* https://github.com/plataformatec/devise#configuring-controllers
* https://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-on-successful-sign-up-(registration)

また、デフォルトではsign inページのViewでsign upへのリンクが表示されています。これを削除するにはViewを上書きします。

`app/views/devise/shared/`というディレクトリを作成し、その中に[_links.erb](https://github.com/plataformatec/devise/blob/master/app/views/devise/shared/_links.erb)を入れます。(hamlやslimに変換しても構いません)

そして、`_links.erb`中の

    <%- if devise_mapping.registerable? && controller_name != 'registrations' %>
      <%= link_to "Sign up", new_registration_path(resource_name) %><br />
    <% end -%>

を削除してください。

Viewを大規模に変更する場合は、`rails generate devise:views`コマンドを実行するとデフォルトのViewが全て生成されます。