Sto iterando sugli articoli di un utente. Posso elenca gli articoli, ma non il loro profilo in base alla mia relazione:In che modo ReactJS gestisce le associazioni dei record attivi delle guide
Messaggio Modello:
belongs_to :user
Profilo Modello: Modello
belongs_to :user
utente:
has_many :posts
has_one :profile
PostsController:
class PostsController < ApplicationController
respond_to :json
before_action :set_post, only: [:show, :edit, :update, :destroy]
before_action :only_current_user, except:[:show, :interest]
# GET /posts
# GET /posts.json
def index
@user = User.friendly.find(params[:user_id])
end
[...]
end
Indice Pagina regolatore:
class PagesController < ApplicationController
respond_to :json
def index
@users = User.all
@posts = Post.all.order("created_at DESC")
end
[...]
end
Senza JS, ottengo i valori con:
<% @posts.each do |s| %>
<%= s.user.profile.business_name %>
<%= s.post_type %>
<%= s.<all others> %>
<% end %>
Ora con Reagire, posso usare il reagiscono -rails gemma per questo:
var Posts = React.createClass({
render: function() {
var createItem = (p) => (
<div className="row">
{p.post_type}
{p.foobar}
{p.user.name} //this does not work
</div>
);
return (
<div className="panel">
{this.props.posts.map(createItem)}
</div>
);
}
});
index.html.erb:
<%= react_component('Posts', { posts: @posts } %>
pensavo di avere la risposta, ma questo solo sputa fuori da tutti gli utenti quando voglio solo l'utente con il post associato:
<%= react_component('Posts', { posts: @posts,
users: @users } %>
Quindi aggiungerei gli oggetti di scena nella js ma non è quello che voglio.
Sembra che ci siano un indizio nella mia console che sto cercando di capire:
"Attenzione: Ogni bambino in un array o iteratore dovrebbe avere un unico 'prop tasto' Verificare il metodo render . Messaggi di
Come si popola la variabile '@ posts' nel controller? – nbermudezs
@nbermudezs ha appena aggiornato il post. – Sylar
Penso che tu abbia incluso l'azione sbagliata, questo è il compito di '@ utente'. Stai facendo '@posts = @ user.posts'? – nbermudezs