0

我希望有人可以在我的申请中进一步帮助我。

这就是我所在的地方。我有具有“所有者”角色的一般用户,并且有具有“寻求者”角色的寻求者。现在,“所有者”创建一个帖子,而“寻求者”接受它。

我希望在 Rails 方面经验丰富的人可以提出最佳路径和结构来执行以下操作;

1.) 在创建帖子时将“所有者”连接到他们在数据库中的帖子

2.)将“寻求者”连接到他们接受的帖子。

因此,如果“owner1”创建了 10 个帖子,他应该链接到其中的 10 个帖子,而不是其他帖子。现在假设“seeker1”查看所有 10 个帖子,但只喜欢其中的 5 个,然后单击按钮接受他选择的 5 个。

我不确定如何让 Rails 自动连接所有东西,任何建议都会有所帮助。在 Stackoverflow 上还没有找到类似的东西。


只是想改写我的初始设置和功能。

在我的申请中,我有;

  • 具有角色的用户可以创建职位描述帖子。他可以对其进行编辑、删除或将其标记为已完成。

  • 我也有搜索者,他们浏览用户创建的所有帖子。求职者,如果他们喜欢该职位和职位描述,并且他们想做那项工作,他们点击“抓住它”按钮

所以我要创建的功能是;

1.) 将用户与他们的帖子联系起来。现在,任何用户都可以创建帖子并查看所有帖子。我希望他们在某个视图中只看到他们创建的帖子,而看不到其他帖子。

2.) 我还希望“求职者”能够将自己在数据库中与他们想要工作的职位联系起来。

现在从我对事物的整体理解来看,并且是新手。我猜我需要更新数据库并创建 2 个新表。1 x 所有者和 1 用于寻求者。

我卡在控制器上,如何在用户提交带有帖子详细信息的表单并将他绑定到该数据库对象后运行我的“def new”。

上面提到的第二步是在搜索者单击“抓住它”按钮时使用“def grabit”运行,并将搜索者也绑定到该帖子。

所以最后如果我运行@job = Joblisting.find(1),我会得到数据库表,其中列“用户”显示创建此帖子的用户,表“搜索者”显示正在处理的搜索者的名称它。如果没有寻求者当然是零。

嗯 .. 只是想一想,用于识别人员的电子邮件地址是否可行且值得建议,或者您是否建议为每个注册用户做某种 ID。

对此的任何帮助都会很棒。

4

2 回答 2

1

每个帖子都有一个所有者,因此这将形成一个简单的一对多关系,其中一个用户拥有_many 个帖子,一个帖子属于一个用户。一个喜欢的帖子可以有很多“搜索者”,尽管它看起来像一个用户可以“搜索”很多帖子。这样就形成了HABTM关系。看起来像这样:

class User < ActiveRecord::Base 
  has_many :posts
  has_and_belongs_to_many :sought_posts, :class_name => 'Post', :join_table => 'posts_users'

class Post < ActiveRecord::Base
  belongs_to :user
  has_and_belongs_to_many :seekers, :class_name => 'User', :join_table => 'posts_users'

我不知道“sought_posts”是否是最好的名字,但你(希望)明白我的意思。我也不是 100% 确定是否应该在此处指定 join_table,但它不会受到伤害,所以我想我会包含它。

HABTM 连接表的迁移如下所示:

class CreatePostUsers < ActiveRecord::Migration
  def change
    create_table :posts_users, :id => false do |t|
        t.references :post
        t.references :user
    end
    add_index :posts_users, [:post_id, :user_id]
    add_index :posts_users, [:user_id, :post_id]
  end
end
于 2013-01-04T11:38:04.097 回答
0

我不是专家,但我认为像下面这样的东西会很好。
Posts 和 LikedPosts 都将包含一个 :user_id 列。
LikedPosts 也只会包含一个 :post_id。

然后可以调用帖子

User.posts.all
User.liked_posts.all

这些模型将像这样相关:

class User < ActiveRecord::Base 
  has_many :posts
  has_many :liked_posts

class Post < ActiveRecord::Base
  belongs_to :user

class LikedPost < ActiveRecord::Base
  belongs_to :user
  has_many :posts

希望有帮助。

于 2013-01-04T06:30:06.187 回答