查找列表中是否存在值

时间:2015-01-11 20:54:03

标签: ruby-on-rails

我有一个帖子控制器,可以让你选择一个职业。我还有一个工作控制器,其中包含以逗号分隔的专业列表。例如:

Post有一行名为profession,只允许你选择1。

工作有一行称为专业,存储方式如下:业务,法律,会计。

我想要做的是,一旦你保存你的帖子,带你到一个页面,显示职业等于职业专业的工作。 (仅限相关工作展示)

我将如何做到这一点?

1 个答案:

答案 0 :(得分:0)

这听起来像你正在尝试做的事情。

<强> posts_controller.rb

def create
  @post = Post.create(post_params)
  if @post.save
    redirect_to some_other_path(post_id: @post.id)
  else
    # handle error
  end
end

<强> some_controller.rb

def some_action
  @post = Post.find(params[:post_id])
  @works = Work.where("profession like ?", "%#{@post.profession}%")
end

由于您正在使用Postgres,因此您可以使用like来匹配字段中的模式。这更像是一种搜索功能,而不是一种关联记录的方式。因此,如果你有一个专业的&#34;市场&#34;,那么匹配&#34;市场&#34; &#34;营销&#34;。

将职业作为一个单独的模型可能会更清洁,更容易。帖子可以属于_to,而工作可能有很多。