Actualizare : acum current_user si current_company sunt serializate si accesibile in aplicatia ember
Demonstrati o aplicatie ember.js + rails + concepeti care utilizeaza o abordare hibrida: Rails + Devise pentru autentificarea utilizatorului, o actiune de vizualizare rails pentru atribuirea variabilelor de sesiune si o aplicatie ember cu scop care are acces la metodele de rails serializate.
De asemenea, arata:
- Persistenta unei bratari are o multime de relatii cu Rails
- Sortarea si filtrarea in parintele unui brat are_multi
- Afisarea metodelor rails current_user si current_company in cadrul aplicatiei de ember cu scop
Acestea sunt blocuri simple, cu posibilitati puternice. Aceasta este o implementare rapida, cu un design zero, dar in curand voi fi actualizat in acest exemplu sau deschiderea unuia dintre proiectele mele actuale ember + rails pentru a arata exemple mai complexe si mai bogate de cat de puternica a devenit aceasta combinatie.
Pentru a rula aceasta demonstratie:
-
clonati sau descarcati
-
instalarea cd / app si a pachetului
-
rake db: migreaza
-
grebla db: samanta
-
sine s
-
fa-o mai buna, PR bun venit! : P
Piese de cod interesante:
-
In vizualizarea Companii Rails, in compania specifica link_pentru a face clic, treceti variabila companiei la o actiune a controlerului rails care este transmisa mai departe catre o metoda de ajutor pentru a seta o variabila de sesiune pentru curent_company.
<% @ companies.each do | company | %> <% = link_to ‘Tabloul de bord al companiei’, set_current_company_company_path (: id => company)%> <% end%>
clasa CompaniesController <ApplicationController
def set_current_company session [: company_id] = params [: id] redirect_to assets_path end … end
clasa ApplicationController <ActionController :: Base … helper_method: current_company
def company_current @company_current || = Company.find_by_id! (session [: company_id]) end … end
App :: Application.routes.draw do
resurse: companiile membre obtin: set_current_company end end …
Metoda set_current_company va seta variabila current_company la nivel de sesiune si va redirectiona utilizatorul catre vizualizarea feroviarelor assets / index.html.erb care contine aplicatia dvs. de membru.
-
Acum trebuie sa va extindeti datele api ale sinelor pentru Postari (si comentarii, Companii_membri) pentru compania_curenta pe care doriti sa o utilizati in modelele dvs. api / ember json, asa:
clasa PostsController <ApplicationController
def index @posts = Post.where (company_id: current_company.id) render json: @posts end
def create @post = Post.
laura marano nude masajes eroticos camara oculta
pajas entre colegas descargar videos porno gratis
porno online follando con abuelas
orgias con abuelas porno senegal
porno traducido español sexo casero españa
enanas porno vecina mirona
comiendo coño ver sexo gratis
follada a traicion videos porno online
corriendose dentro porno gay castellano
follame xxx se folla a
porno gay castellano voyeur playa
pornoamater mamadas en la playa
se folla a su madre porno espaniol
porno gratis abuelos hermanos españoles follando
pepe porno viejas tetonas
videos heroticos supertetas
gays haciendo el amor cornudos consentidos
porno torrent porno violada
sexo con viejas pornografia gratis
porno transexual en español violada xxxnew (params [: post] .merge: company_id => current_company.id)
respond_to do | format | if @ post.save render json: @post, status:: created, location: @post else render json: @ post.errors, status:: unprocessable_entity end endSfarsit
-
Apoi serializati datele prin AMS catre aplicatia ember intr-un mod normal:
clasa PostSerializer <ActiveModel :: Serializer atribute: id,: title,: body,: company_id,: user_id has_many: end end
-
Apoi, treceti la modelul de arde.
App.Post = DS.Model.extend ({title: DS.attr (‘sir’), corp: DS.attr (‘sir’), comentarii: DS.hasMany (‘App.Comment’)});
-
Controlerele, vizualizarile si sabloanele Ember ar trebui sa se comporte conform asteptarilor. Consultati [aplicatia demo] pentru a vedea implementari super de baza.
Pentru a obtine acces la current_user si current_company, utilizati serializarea activ_model_serializers meta date si apoi solutia temporara a acestui tip pentru a va cartifica serializatorul, astfel incat sa prinda metadatele si sa le seteze la o variabila globala in aplicatia dvs. ember. Este posibil sa nu fie cele mai bune practici, dar deocamdata se face treaba.
-
Mai intai, setati store.js sa preluati metadatele de la json si sa le setati la o variabila globala in serializator:
App.CustomRESTSerializer = DS.RESTSerializer.extend ({extractMeta: functie (incarcator, tip, json) {var meta; meta = json [this.configOption (type, ‘meta’)]; if (! Meta) {return;} Ember.set (‘App.metaData’, meta); this._super (loader, type, json);}});
App.Store = DS.Store.extend ({revizuire: 11, adaptor: DS.RESTAdapter.create ({bulkCommit: false, serializator: App.CustomRESTSerializer}),});
App.ready = function () {App.CompanyMembership.find (); }
-
In al doilea rand, in rails company_memberships_controller.rb redati meta date:
render json: @company_memberships,: meta => {: current_user => current_user,: current_company => current_company}
-
In cele din urma, apelati orice atribut current_user sau current_company direct din sabloanele dvs.:
Conectat cu: {{App.metaData.current_user.email}}
Compania actuala: {{App.metaData.current_company.name}}








