我有一个登录方法,我想说一个提醒,当用户成功登录时...这是远程表单:
<div id="login">
<%if logged_in? %>
<b><%=current_user.login%></b>
<%=link_to "Signout", logout_path%>
<%else%>
<% form_remote_tag :url => session_path do -%>
<p><%= label_tag 'login' %>
<%= text_field_tag 'login', @login %> <%= label_tag 'password' %>
<%= password_field_tag 'password', nil %></p>
<p><%= label_tag 'remember_me', 'Remember me' %>
<%= check_box_tag 'remember_me', '1', @remember_me %></p>
<p><%= submit_tag 'Log in' %></p>
<% end -%>
<%end%>
</div>
这是session_controller.rb:
def create
logout_keeping_session!
user = User.authenticate(params[:login], params[:password])
if user
# Protects against session fixation attacks, causes request forgery
# protection if user resubmits an earlier form using back
# button. Uncomment if you understand the tradeoffs.
# reset_session
self.current_user = user
new_cookie_flag = (params[:remember_me] == "1")
handle_remember_cookie! new_cookie_flag
#redirect_back_or_default('/')
flash[:notice] = "Logged in successfully"
self.reload_login()
else
note_failed_signin
@login = params[:login]
@remember_me = params[:remember_me]
render :action => 'new'
end
end
def reload_login
respond_to {|format| format.js}
flash[:notice] = "Any body calling me?"
end
然后,这是reload_login.js.rjs:
page.alert('This message is from Rails!')
我正在使用带有restful_authorization的RoR ...... 我可以看到“任何身体都在呼唤我?”没有出现,有没有人知道我的代码有什么问题?谢谢你。
答案 0 :(得分:0)
代码中的一个错误::在create action中使用“reload_login()”或“reload_login”代替“self.reload_login()”来调用reload_login方法。