1, Client的check url

<%=link_to_remote 'Check Availability',
  :submit   => "signupForm",
  :url 
=> {:controller => 'users', :action => 'check_avaiable' },
  :html => {:class => 'smallText'} %>

 

 

2, Controller的action

def check_avaiable
  respond_to 
do |format|
    format.html { redirect_to 
'/' }
    format.js
  end
end

 

 

3, RJS 文件

代码
exist_user  = User.find_by_username(params[:username])

if exist_user.nil? then
  page.replace_html :check_username, :partial 
=> 'check_avaiable', :locals=>{:check_value => params[:username]}
else
  page.replace_html :check_username, :partial 
=> 'check_not_avaiable', :locals=>{:check_value => params[:username]}
end

exist_email 
= User.find_by_email(params[:email])

if exist_email.nil? then
  page.replace_html :check_email, :partial 
=> 'check_avaiable', :locals=>{:check_value => params[:email]}
else
  page.replace_html :check_email, :partial 
=> 'check_not_avaiable', :locals=>{:check_value => params[:email]}
end

 

 

posted @ 2010-05-16 15:06 James 阅读(19) 评论(0) 编辑

1, Client

 

<%=link_to_remote 'Check Availability',
   :submit   => "signupForm",
   :url 
=> {:controller => 'users', :action => 'check_username_avaiable' },
   :update => 'check_username',
   :html => {:class => 'smallText'} %>

 

 

 

 注意这里的submit 是Form的ID, update是ajax回来以后要update的DOM的ID 

2, server


  def check_username_avaiable
    exist_user 
= User.find_by_username(params[:username])
    exist_user 
= 'yes' if params[:username] == 'demo'
    
if exist_user.nil? then
      render :partial
=>'username_avaiable', :locals => {:username => params[:username]}
    
else
      render :partial
=>'username_not_avaiable', :locals => {:username => params[:username]}
    end
  end

 

 

 

posted @ 2010-05-16 13:22 James 阅读(19) 评论(0) 编辑