关于rails激活帖子

时间:2017-03-27 17:13:16

标签: ruby-on-rails activerecord

我想问一下激活所选职位作为代表职位

如果我有两个模型

怎么办?
class Blog < ActiveRecord::Base
  has_many :posts
end

class Post < ActiveRecord::Base
  belongs_to :blog
end

并且每个模型都有以下列

create_table "blogs", force: :cascade do |t| 
  t.string "title"
  t.boolean "main_post_yn"
end

create_table "posts", force: :cascade do |t| 
  t.string "title"
  t.integer "blog_id"
end

如果用户输入main_post_yn为true,我想显示所选的单个帖子。

所以我想......

create_table "blogs", force: :cascade do |t| 
  t.string "title"
  t.boolean "main_post_yn"
  t.integer "post_id"
end

create_table "posts", force: :cascade do |t| 
  t.string "title"
  t.integer "blog_id"
end

我将post_id添加到博客模型。

我虽然遵循流程。

  1. 用户点击“main_post_yn”true。
  2. 显示所有属于博客的帖子。
  3. 用户选择单个帖子并将其ID传递给Blog.post_id
  4. 在主页上,在控制器中传递“Post.id = Blog.post_id”并将其显示为代表帖子
  5. 我认为上层过程不是轨道方式。 你有什么建议吗?

    感谢。

1 个答案:

答案 0 :(得分:0)

由于您有Blog has_many :postsPost belongs_to :blog

请勿在{{1​​}}中添加post_id

Blog table

现在,在控制器中,

class Blog < ActiveRecord::Base
  has_many :posts
end

class Post < ActiveRecord::Base
  belongs_to :blog
end


create_table "blogs", force: :cascade do |t| 
  t.string "title"
  t.boolean "main_post_yn"
end

create_table "posts", force: :cascade do |t| 
  t.string "title"
  t.integer "blog_id"
end

显示属于博客的所有帖子。得到了满足。