【问题标题】:Showing only things belonging to a selected user仅显示属于选定用户的事物
【发布时间】:2013-08-06 18:28:55
【问题描述】:

我有一个用户创建的东西的列表,但我无法根据创建者来显示它们。

在我看来我有

  <%= form_tag({}, class: "form-inline") do %>
    <%= label_tag("user_names", "Users") %>
    <%= text_field_tag("user_names", params[:user_names]) %>

然后在我的控制器中,我试图用这个来确定它的范围

    if params[:user_names].present?
      @random = @random.where(:user_id => :user_names)

我看到了下拉列表,但我想得到的是,所以下拉列表显示用户名并让我选择一个,这样当我提交表单时,我只能看到与该用户关联的条目。

我错过了什么?

【问题讨论】:

  • 用户 ID 是否永远等于用户名?现在您将查询设置为检查 :user_id 与符号 :user_names,这不太可能是您想要的。
  • 嗯,我希望我可以显示他们的名字,然后通过与名字相关联的 id 进行搜索,它作为 user_id 存储在对象中
  • 可以,但需要传入用户ID,而不是符号:user_names
  • 那我该怎么做呢?
  • 创建一个选择框,其值为id,文本为用户名。

标签: ruby-on-rails ruby ruby-on-rails-3


【解决方案1】:

你需要通过用户名找到用户,并通过用户关联加入其他模型。

if params[:user_names].present?
  @random = @random.joins(:user).where("users.username IN (?)", params[:usernames])
end

【讨论】:

  • 太棒了,有没有办法可以更改视图,以便它按 user.name 列出所有用户,我可以选择其中一个,并像你给我的那样按 user.id 搜索?
猜你喜欢
  • 2021-02-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-26
相关资源
最近更新 更多