ruby-on-rails - 获取数据库中存在的任何用户的任何id

标签 ruby-on-rails ruby ruby-on-rails-4 sqlite3-ruby

我是 Rails 的新手,有一个任务要求我向任何用户发送邀请,让他们成为我杂志的管理员,这是我的一段代码

def invite
    inviteUser = { 'user_id' => current_user.id, 'Magazine_id' => params[:id] }
    CollaborationInvitation.create(inviteUser)
    @magazine = Magazine.find(params[:id])
    redirect_to :back
    rescue ActionController::RedirectBackError
    redirect_to root_path
end

我需要将 current_user.id 替换为指向我数据库中存在的任何用户 ID 的内容,以便向他发送邀请成为我的管理员 我尝试添加 @User= Users.All,然后将其作为变量传递,但它给了我一个错误我尝试了很多东西,但每次我都遇到错误,除了添加

ps:我是用devise做认证

最佳答案

你问了一些事情,这有点让人困惑你想做什么。

这是获取模型中所有记录 ID 的方法。

Rails4: User.ids

Rails3: User.all.map(&:id)

或者(不确定 #pluck 是否在 Rails 3 中)

User.pluck(:id) 

如果您想获得一个随机用户(您提到“任何用户”),您可以这样做。

User.find(User.pluck(:id).sample)

虽然我认为您真正想要做的是将用户的 ID 或其他一些属性作为参数传递给操作并向该用户发送邀请。

大概您有一个帖子或获取 "users#invite" 的路线(您在问题中写的操作)。您可以在那里添加一个命名参数,或者您可以传递一个 url 参数,或者如果您使用的是帖子路由,您可以将参数添加到帖子正文中。

然后在你的 Controller 中你可以做这样的事情(我将使用电子邮件作为属性):

def invite
  @user = User.find_by(email: params[:user_email])

  #Rails 3 like this
  # @user = User.find_by_email(params[:user_email])
   # now do stuff with user
end

关于ruby-on-rails - 获取数据库中存在的任何用户的任何id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30006356/

相关文章:

ruby-on-rails - 如何将我的 Rails 搜索表单与 Bootstrap 搜索设计连接起来?

ruby-on-rails - 使用 STI 时是否可以从包含关联中提取?

ruby-on-rails - 显示从数据库中获取的数据时是否应该调用 escape_javascript

ruby - google_drive 和 google-api-client 中的法拉第冲突

ruby - 如何使用像字符串模板这样的正则表达式进行替换?

ruby-on-rails - 为表单制作和使用临时属性

ruby-on-rails - 在单元测试中使用 HABTM Fixture 的 Rails 单表继承返回 NoMethodError : undefined method `singularize'

ruby-on-rails - acts_as_follower 无法与我的 Rails3.2 应用程序正常工作

ruby - 判断 DateTime 是否在当前时间的一小时内

javascript - 从 polymer 0.5 升级到 0.8