백본에 대해 많이 들었으며 최신 프로젝트를 위해 백본을 사용하고 싶었습니다. 그러나 레일즈 배경에서오고 있으며 내 경험은 백본에서 제대로 번역되지 않는 것 같습니다.레일 및 백본 아키텍처
예를 들어 제품보기에 표시해야하는 네 가지 모델이 있습니다.
class Product < ActiveRecord::Base
belongs_to :category
belongs_to :child
has_many :actions
has_many :comments
end
class Child < ActiveRecord::Base
belongs_to :user
has_many :products
end
백본 모델에서 관계를 정의하기 위해 백본 관계형을 사용하고 있습니다. 다음은 제품 백본 모델입니다.
class Ibabybox.Models.Product extends Backbone.RelationalModel
paramRoot: 'product'
urlRoot: '/products'
relations:
[
{
type: Backbone.HasMany
key: 'actions'
relatedModel: 'Ibabybox.Models.Action'
collectionType: 'Ibabybox.Collections.ActionsCollection'
reverseRelation:
key: 'product'
includeInJSON: 'id'
}
]
백본 라우터에서 다음을 수행합니다.
클래스 Ibabybox.Routers.ProductsRouter이
routes:
"": "index"
":id": "show"
show: (id) ->
@product = new Ibabybox.Models.Product({id: id})
@product.fetch
success: (product) ->
actions = product.get('actions')
child = product.get('child')
@child_model = new Ibabybox.Models.Child({id: child.id})
user = @child_model.get('user')
@view = new Ibabybox.Views.Products.ShowView({model: product, actions: actions, child: child, user: user})
$("#products").html(@view.render().el)
그리고 레일 컨트롤러 Backbone.Router
을 확장, 나는 다음을 수행하십시오.class ProductsController < ApplicationController
def show
@product = Product.find(params[:id])
render json: @product.to_json(:include => [ :actions,
:child => { :include => {:user => {:methods => [:name] }}} ])
end
end
먼저 올바른 방향으로 가고 있습니까?
둘째, 그것은
어떤 도움/추천/보정 것 .... 정의하고 제품과 내가 뭔가를 잘못하고있을 수도 느낌의 이유로 관련 일을 표시하기 위해 작성하는 많은 것들을 같은 느낌 많이 감사하겠습니다!
감사합니다.
이 문제의 구체에 관련된되지 않음 (귀하의 경우에는 당신이 가져 오는 대신 성공 콜백을 전달하는 이벤트를 사용할 수 있습니다). backbone events를 그리워하지만, 더 큰 문제의 개요를하지 마십시오 레일 및 백본 아키텍처를 통합하는 데 관심이있을 수 있습니다. http://stackoverflow.com/questions/11918586/rails-and-backbone-working-together/11922573#11922573 –