こんにちは
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/
したがって、たとえば次のように使用できます。
store.loadRecords(Todos.Task, response.get('body'));
プロジェクトのビルドファイルに行を追加することは残っています:
proxy "/tasks", :to => "localhost:3000"
今のところすべてです。 残念ながら、SproutCoreに関するドキュメントや記事はそれほど多くありませんが、フレームワークは明らかに注目に値します。
プロジェクトサイトデモインターフェース などプロジェクトwikiVimeoのSabjビデオアルバム