我希望有人可以在我的申请中帮助我。
这是我在的地方。我有一般用户角色为“所有者”,我有寻求者角色为“求职者”。现在,“所有者”创建了一个帖子,而“寻求者”接受了它。
我希望在Rails中有经验的人可以建议采取以下最佳途径和结构;
1。)创建帖子时,将“所有者”连接到数据库中的帖子
2。)将“求职者”连接到他们接受的帖子。
因此,如果“owner1”创建了10个帖子,那么他应该链接到其中10个帖子而不是其他帖子。现在,“seeker1”让我们说,看看所有10个帖子,但只喜欢其中的5个并点击按钮接受他选择的5个帖子。
我不确定如何让Rails自动连接所有内容,任何建议都会有所帮助。还没有在Stackoverflow上找到类似的东西。
只是想改写我的初始设置和功能。
在我的申请表中,我有;
具有角色的用户可以创建职位描述帖子。他可以编辑,删除或标记完成。
我也有搜索者,他们浏览用户创建的所有帖子。求职者,如果他们喜欢这个职位的帖子和描述,他们想做那个工作,他们点击一个按钮“抓住它”
所以我想创建的函数是;
1。)将用户绑定到他们的帖子。现在,任何用户都可以创建帖子并查看所有帖子。我希望他们在某种观点中只看到他们创造的帖子,而不是其他人。
2。)我还希望“求职者”能够将自己与数据库绑定到他们想要使用的工作岗位。
现在从我对事物的全面了解,以及它的新手。我猜我需要更新数据库并创建2个新表。 1 x所有者和1 for Seekers。
我遇到困难的地方在控制器上,如何在用户提交带有帖子详细信息的表单并将其绑定到该DB对象后进行“def new”运行。
如上所述,第二步是使用“def grabit”在寻求者点击“抓住它”按钮时运行,并将寻求者绑定到该帖子。
所以最后如果我运行@job = Joblisting.find(1),我会把数据库表吐出来,列'user'显示创建这个帖子的用户和表'seeker'的名字寻求者正在努力。如果没有寻求者,那当然就是零。
嗯..只是考虑一下,会通过电子邮件地址来识别人员是否正常和可暗示,或者您是否建议为每个已注册用户提供某种身份证明。
对此的任何帮助都会很棒。
答案 0 :(得分:1)
每个帖子都有一个所有者,这样就形成了一个简单的一对多关系,其中用户拥有多个帖子,一个帖子属于一个用户。一个喜欢的帖子可以有许多“寻求者”,虽然看起来和用户可以“寻找”许多帖子。这样就形成了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'
我不知道“seek_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
答案 1 :(得分: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
希望有所帮助。