Rails 3およびSproutCore

こんにちは SproutCoreと呼ばれるすばらしいJavaScriptフレームワークがあります。 これにより、デスクトップインターフェイスに近いWebアプリケーションを非常に簡単に作成できます。 これは非常に人気があり、たとえばAppleがiWork.com使用しています。 カットの下で、SproutCoreを最後のレールに固定します。



もちろん、最初にSproutCoreでgemを配置します。

sudo gem install sproutcore







ところで、RubyGemsのバージョンは少なくとも1.2でなければなりません。そうしないと何も機能しません。 ただし、更新は簡単です。

sudo gem update --system







わかりました、私達はヘムがそれの価値があると仮定します。 原則として、SproutCoreを今すぐ試すことができます。

sc-init hello_sp

cd hello_sp

sc-server







次に、 localhost:4020に移動して結果を確認します。 しかし、私たちはこの喜びをすべてレールにねじ込んでいきます。

公式サイトではtodo RESTfulアプリケーションの例を提供しているため、何も発明せずに繰り返します。



プロジェクトを作成します。

$ rails new todos

$ cd todos







次に、データベースを作成して何かを入力し、さらにこのデータをWebインターフェースで編集する必要があります。 足場は最善の解決策ではありませんが、迅速なテストのために機能します。

rails g scaffold Task description:string isDone:boolean order:integer







移行を適用します。

rake db:migrate







次に、標準のCRUD操作の実装に少し取り組む必要があります。app/ controllers / tasks_controllers.rbを次の形式にします。

 class TasksController < ApplicationController respond_to :json def index respond_with(@tasks = Task.all) end def show respond_with(@task = Task.find(params[:id])) end def create respond_with(@task = Task.create(:description => params[:description], :isDone => params[:isDone], :order => params[:order])) end def update @task = Task.find(params[:id]) @task.description = params[:description] @task.isDone = params[:isDone] @task.order = params[:order] @task.save respond_with(@task) end def destroy @task = Task.find(params[:id]) @task.destroy render(:nothing => true, :status => :ok) end end
      
      





素晴らしい、次のステップはデータベースに何かを投入することです。 多くのオプションがありますが、最も便利なのはdb / seeds.rbに入力することです:

  Task.create(:description => 'This is the first task', :isDone => true, :order => 1) Task.create(:description => 'This is the second task', :isDone => false, :order => 2) Task.create(:description => 'This is the third task', :isDone => true, :order => 3)
      
      





(ただし、値が少ない場合)、コンソールに直接ドライブすることもできます: rails c



および前後。 次に、データベースに入力します。

rake db:seed







すべてがアプリケーションのRailsテストの準備がほぼ整いましたprotect_from_forgery



からprotect_from_forgery



を削除する必要があります。そうしないと、ひどい「InvalidAuthenticityTokenエラー」エラーが発生する可能性があります。



開始:

rails s







このリンクにより 、データベースの内容を含むテキストを確認する必要があります。



プロジェクトに小さなSproutCoreを追加することは残っていますが、それほど難しくありません。正しいデータをJSON形式で提供する必要があります。 マニュアルではかさばるクラスを書くことを提案していますが、コメントはより適切な解決策を示唆しています。

したがって、プロジェクトのActiveRecord :: Baseを変更してみましょう。次のようになります。

 class Task < ActiveRecord::Base def as_json(options = {}) ret = { :guid => "/tasks/#{self.id}", :id => self.id, :description => self.description, :isDone => self.isDone } end end
      
      





したがって、たとえば次のように使用できます。
 store.loadRecords(Todos.Task, response.get('body'));
      
      







プロジェクトのビルドファイルに行を追加することは残っています:

 proxy "/tasks", :to => "localhost:3000"
      
      







今のところすべてです。 残念ながら、SproutCoreに関するドキュメントや記事はそれほど多くありませんが、フレームワークは明らかに注目に値します。



プロジェクトサイト

デモインターフェース など

プロジェクトwiki

VimeoのSabjビデオアルバム



All Articles