【问题标题】:Rails: Associate posts with user and locationRails:将帖子与用户和位置相关联
【发布时间】:2011-08-08 13:58:31
【问题描述】:

我的应用中有一个Post 模型,其中belongs_toa User 模型,以及Location 模型。 UserLocation 模型都使用 has_manyPost 的关系。

现在,在我的Post 控制器的创建操作中,我想自动将Post 与当前登录的用户相关联(我可以通过Devise 作为current_user 使用)。

此外,如果存在具有相同 address 字段(他通过表单输入)的Location,则它应该与预先存在的Location 相关联,或者如果不存在,则创建一个新字段并将其与该字段相关联。

我的Post 模型有一个user_id 字段以及一个location_id 字段用于此目的。

当用户创建新帖子时,如何在create action中自动完成这两种关联?

【问题讨论】:

  • @Dogbert 已更新。抱歉,如果不清楚。
  • 这是一个可以通过阅读文档轻松回答的问题。尝试guides.rubyonrails.org/association_basics.html 作为初学者。因此,您不太可能得到好的答案,因为您似乎没有付出任何努力自己解决它。

标签: ruby-on-rails ruby-on-rails-3 associations


【解决方案1】:

您需要使用 2 个语句。

@post = current_user.posts.build(params[:post])
@post.location_id = params[:location_id] # change this to whatever you're passing.
@post.save

【讨论】:

  • 哦,我不知道设置location_id 字段会自动为我将它们关联在一起。谢谢。
  • 如果你的 Post 模型与 Location 有关联(Post 有一个位置),最好先查找位置:@post.location = Location.find(params[:location_id))。
猜你喜欢
  • 2021-12-23
  • 2016-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多