【问题标题】:Show user with matching app_id from URL显示来自 URL 的匹配 app_id 的用户
【发布时间】:2015-12-28 19:24:20
【问题描述】:

我想根据 URL 中给出的app_id 参数显示用户。

我想给某人一个类似“http://localhost:3000/users/76876876876868”的链接,并向用户展示该app_id(“76876876876868”)。

我正在寻找一种神奇的方法或其他可以帮助我完成此任务的方法。

这就是我在 routes.rb 中的内容:

  get 'users/:app_id' => 'users#show'

这就是我的 users_controller.rb 中的内容:

  def show
     @user = User.magicalMethod(params[:app_id])
  end

我尝试了几个选项,例如 User.find(params[:app_id]),但 'find' 方法适用于 'id' 参数。

我也试过了:

def show
  @user = User.where(app_id: 76876876876868)
end

这似乎可行,但我想要更有活力的东西。

【问题讨论】:

    标签: ruby-on-rails ruby parameters controller


    【解决方案1】:

    这应该可以工作

    @user = User.where(app_id: params[:app_id])
    

    如果你只需要一个用户,试试这个

    @user = User.find_by(app_id: params[:app_id])
    

    @user = User.where(app_id: params[:app_id]).first
    

    【讨论】:

    • 非常感谢您的回答:):):):)
    • 你给我的第一个答案有效,但其他两个给我这个错误NoMethodError in Users#show
    • 您使用的是 Rails 4,对吗?它应该有find_by
    【解决方案2】:

    你可以使用:

    @user = User.find_by_app_id(params[:app_id])
    

    或者:

    @user = User.find_by(app_id: params[:app_id])
    

    【讨论】:

    • 其实find_by_app_id已经被弃用了
    猜你喜欢
    • 2013-11-24
    • 2020-12-30
    • 2017-07-19
    • 2014-06-04
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 2011-09-23
    相关资源
    最近更新 更多