私はhas_many:usersというコミュニティモデルとbelongs_to:communityというユーザーモデルを持っています。デベロッパーへの登録
サインアップするときに同じプロセスでコミュニティを作成し、サインアップするときにこのコミュニティに割り当てることができます。コミュニティが作成されていない場合は、ユーザーを作成しないでください。
どうすればよいですか?おそらくユーザーのためのカスタムデベロッパーコントローラを作成する...任意のアイデアをいただければ幸いです。
アプリ/コントローラ/工夫/ registrations_controller.rb
# GET /resource/sign_up
def new
logger.info "1"
build_resource({})
render_with_scope :new
end
# POST /resource
def create
logger.info "2"
build_resource
if Community.save_both_a_new_user_and_a_new_instance(resource)
if resource.active_for_authentication?
set_flash_message :notice, :signed_up if is_navigational_format?
sign_in(resource_name, resource)
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
アプリ/ビュー/工夫/登録/ new.html:最初の応答の変化後
おかげ
。エルブ
<h2>Sign up</h2>
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<div><%= f.label :email %><br />
<%= f.email_field :email %></div>
<div><%= f.label :password %><br />
<%= f.password_field :password %></div>
<div><%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %></div>
</br>
<h4>Introduce la contraseña de tu comunidad</h4>
<div><%= f.number_field :community_id %></div>
<p>o Crea una nueva comunidad</p>
</br>
<div><%= f.submit "Sign up" %></div>
<% end %>
<%= render "links" %>
アプリ/ビュー/工夫/登録/ edit.html.erb
<h2>Edit <%= resource_name.to_s.humanize %></h2>
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
<%= devise_error_messages! %>
<div><%= f.label :email %><br />
<%= f.email_field :email %></div>
<div><%= f.label :password %> <i>(leave blank if you don't want to change it)</i><br />
<%= f.password_field :password, :autocomplete => "off" %></div>
<div><%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %></div>
<div><%= f.label :current_password %> <i>(we need your current password to confirm your changes)</i><br />
<%= f.password_field :current_password %></div>
<div><%= f.submit "Update" %></div>
<% end %>
<h3>Cancel my account</h3>
<p>Unhappy? <%= link_to "Cancel my account", registration_path(resource_name), :confirm => "Are you sure?", :method => :delete %>.</p>
<%= link_to "Back", :back %>
GEMFILE:
source 'https://rubygems.org'
gem 'rails', '3.2.2'
gem 'sqlite3'
gem 'json'
gem 'execjs'
gem 'therubyracer'
gem 'devise'
gem "cancan"
gem 'paperclip'
gem "aws-s3"
gem 'pg'
gem 'twitter-bootstrap-rails'
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
ロガー情報が表示されません – Daniel
私はDevise 2.0.4を使用しています – Daniel