【发布时间】:2012-04-04 06:05:39
【问题描述】:
我有一个帖子模型,当然还有作者,这是我的用户的外键关系。
我正在尝试以 JSON 格式输出带有作者姓名的帖子。
我知道这是 rails 101,但我不能打电话给post.author,因为我不在视野中。
我尝试了几种方法,但似乎都没有。
我的帖子模型有
属于_to :user, :foreign_key => :author_id def post_author self.each {|a| a['作者'] = User.find(a.id)} 结尾在我的控制器中,我尝试了各种方式
帖子=Post.find(:all).includes(:user) #要么 posts=Post.find(:all).includes(:post_author) #无论如何都不认为这是正确的,但尝试过 #和 帖子 = Post.find(:all) posts = JSON::Parse(posts.to_json()).merge('author'=>posts.author) #or posts.user 等当然,这些都不起作用,这就是我在这里发帖的原因。获得帖子作者的最佳方法是什么。
----------更新 ------------------------ ---
@rjz 提供了一个有效的响应,但我希望这不是最好的方法。 他建议使用
posts.to_json(:include=> :user,:only[:username])这意味着我只能取回用户名,但我需要的还不止这些,所以我开始改用 :except。这里的问题是我在帖子中有一个像id 这样的字段,但在作者中没有,但是如果我以这种方式排除它们,则该字段将完全从结果中排除。我还必须列出我需要的每个字段,我不确定这是否是最好的方法。
【问题讨论】:
标签: ruby-on-rails