【问题标题】:rails 3.1 model and view and controller association with 3 tables associationrails 3.1 模型和视图以及控制器关联与 3 个表关联
【发布时间】:2012-01-29 20:39:29
【问题描述】:
class Hashtag < ActiveRecord::Base
  has_many :messages
end

class User < ActiveRecord::Base
  has_many :messages
end

class Message < ActiveRecord::Base
  belongs_to :hashtag, :foreign_key => "hashtag_id"
  belongs_to :user, :foreign_key => "user_id"
end

现在,如果在主题标签的显示视图中,我们想要显示属于主题标签的所有消息以及一个用于创建新消息的输入框。 任何类型的代码示例或链接或视频都会有帮助吗?

【问题讨论】:

    标签: ruby-on-rails-3 activerecord view model controller


    【解决方案1】:

    如果关联设置正确,调用hashtag.messages 将返回与该特定主题标签关联的消息数组。

    要在主题标签“显示”页面上创建消息,您需要在主题标签#show 中创建新消息。

    @hashtag.messages.build
    

    在 hashtags/show.html 页面上,添加一个表单供用户编辑 消息。然后将 message 提交到 message#create。

    【讨论】:

    • 所以创建消息我们需要hashtag_id和user_id,即使用户登录了,它会在消息hash中吗?
    • 在实际创建消息之前,在控制器中设置消息的 user_id。您应该能够从您的授权系统中获取 user_id。大多数使用方法current_user 来检索用户或他们的ID。
    猜你喜欢
    • 1970-01-01
    • 2014-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-26
    相关资源
    最近更新 更多