アプリ(Titanium Mobile)とサーバー(Rails)間の通信

2011-07-04#titanium#rails

# /app/controllers/users_controller.rb
class UsersController < ApplicationController  
  def signin
    @user = User.create({:name => params[:name], :password => params[:password]})
    respond_to do |format|
      format.json { render :json => @user.to_json }
    end
  end
end
// /Resources/signin.js
button.addEventListener('click', function () {
	var username = usernameForm.value;
	var password = passwordForm.value;
	var confirmation = confirmationForm.value;
	
	if (username === '' || password === '' || confirmation === '') {
		Titanium.API.debug('form is blank.');
		return;
	}
	if (password !== confirmation) {
		Titanium.API.debug('confirmation is wrong.');
		return;
	}
	
	var xhr = Titanium.Network.createHTTPClient();
	xhr.open('PUT', 'http://localhost:3000/users/signin.json');
	xhr.onload = function () {
		var user = JSON.parse(this.responseText);
		Titanium.App.Properties.setString('name', user.name);
		Titanium.App.Properties.setString('password', user.password);
		Titanium.App.Properties.setInt('id', user._id);
		win.close();
	};
	xhr.send({
		'name': username,
		'password': password
	});
});