我遍历用户的帖子项目。ReactJS如何处理轨道活动记录关联
邮政型号:
belongs_to :user
简介型号:
belongs_to :user
用户模型:
我可以根据我的关系列出的项目,但不是他们的个人资料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
索引页控制器:
class PagesController < ApplicationController
respond_to :json
def index
@users = User.all
@posts = Post.all.order("created_at DESC")
end
[...]
end
没有JS,我得到的值:
<% @posts.each do |s| %>
<%= s.user.profile.business_name %>
<%= s.post_type %>
<%= s.<all others> %>
<% end %>
现在有了反应,我可以使用反应 - 铁路这个宝石:
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 } %>
我以为我有答案,但是这只是吐出所有的用户时,我只希望与相关贴的用户:
<%= react_component('Posts', { posts: @posts,
users: @users } %>
然后我会在js中添加道具,但那不是我想要的。
似乎有在我的控制台一个线索,我想弄清楚:
“警告:在数组或迭代每个孩子都应该有一个独特的‘钥匙’的道具检查渲染方法。的帖子
你是如何在控制器中填充'@ posts'变量的? – nbermudezs
@nbermudezs刚更新了帖子。 – Sylar
我认为你包含了错误的行为,那就是'@ user'的赋值。你在做'@posts = @ user.posts'吗? – nbermudezs