Ruby on rails 处理Rails json的正确方法是什么
我试图了解在rails中输出json数据的正确方法我有两种生成json的方法,我想知道哪种方法是正确的,以及为什么: 这是我的密码:Ruby on rails 处理Rails json的正确方法是什么,ruby-on-rails,json,Ruby On Rails,Json,我试图了解在rails中输出json数据的正确方法我有两种生成json的方法,我想知道哪种方法是正确的,以及为什么: 这是我的密码: @feed_items = current_user.feed.paginate(page: params[:page], :per_page => 4) @feed1 = current_user.feed @m = @feed_items @m1 = array = [] @fe
@feed_items = current_user.feed.paginate(page: params[:page], :per_page => 4)
@feed1 = current_user.feed
@m = @feed_items
@m1 = array = []
@feed_items.each do |m|
@username = User.find(m.user.id)
@like =FeedLike.where(:user_id => current_user.id, :feed_id => m.id)
h = {}
h["id"] = m.id
h["u_email"] = @username.email
h["u_name"] = @username.name
h["u_id"] = @username.id
h["avatar_url"] = @username.avatar.url(:medium)
h["user_id"] = m.user_id
h["created_at"] = m.created_at
h["like_count"] = m.like_count
h["lc"] = @like.count
h["content"] = m.content
@comments =Comment.where(:feed_id => m.id)
h["comment"] = array1 =[]
@comments.each do |n|
@username = User.find(n.user.id)
c ={}
c["u_email"] = @username.email
c["u_name"] = @username.name
c["u_id"] = @username.id
c["avatar_url"] = @username.avatar.url(:medium)
c["id"] = n.id
c["comment"] = n.comment
c["user_id"] = n.user_id
c["created_at"] = n.created_at
array1 << c
end
array << h
end
respond_to do |format|
format.json{
render :json => { :Count => @feed1.count, :feed => @m1}
}
你自己的看法是什么?什么更容易写,什么更容易理解,什么更容易测试,什么更容易更改?第二个更容易,但它有一些限制,正如您在feed_中看到的一样,我需要验证,但我不能按照我想要的方式来做。我只是问第一种方法是否存在性能问题。
respond_to do |format|
format.json{
render :json => { :Count => @feed1.count, :nilay => @m1,
:feed => @feed_items.as_json(include: {user: {
only: [:id,:name,:email],methods: [:avatar_url]},
feed_likes:{only: [:id,:user_id,:feed_id]},
comments:{}
})
}
}
end