エラー メッセージを表示するフォームがありますが、ボタンをクリックするとフォームが Javascript で表示されるため、エラー メッセージを表示する方法がわかりません。エラーメッセージを表示しないだけで機能している登録にDeviseを使用しています。Rails4を使用しています。
これは、クリックされた後に登録ボタンを非表示にし、フォームを表示するコードです。
<script type="text/javascript">
$(function() {
$('#prelaunchbutton').click(function() {
$('#prelaunchregistrationbutton').fadeToggle('slow');
$('.prelaunchhide').fadeToggle('slow');
return false;
});
});
</script>
これがDevise登録フォームです(簡潔にするために短縮されています):
<div class="prelaunch_preregisterbutton" id="prelaunchregistrationbutton">
<%= link_to image_tag("pre-register.png", :border=>0), '#', id:'prelaunchbutton' %>
</div>
<div class="span10 offset1 prelaunchhide">
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :class => "form-inline") do |f| %>
...
<% end %>
</div>
これがDeviseの登録コントローラーです:
class RegistrationsController < Devise::RegistrationsController
before_filter :authenticate_user!
respond_to :html, :json
def new
end
def create
@user = User.new(user_params)
@user.build_store(store_params)
if @user.save
UserMailer.preregister_confirmation(@user).deliver
sign_in @user
redirect_to prelaunch_gear_path, :flash => {:success => "Welcome"}
else
render root_path
end
end
...
protected
def after_update_path_for(resource)
user_path(resource)
end
private
def user_params
params.require(:user).permit(:firstname, :lastname, :email, :password)
end
def store_params
params.require(:store).permit(:storename)
end
end