获取随机ID,然后将这些随机ID存储到数据库中

时间:2015-01-05 20:56:09

标签: ruby-on-rails

所以我正在编写一个代码片段,它基本上从表List中取出35个随机ID。

我想要找到随机生成的ID,将它们存储到名为Status的数据库中。

目的是避免在下次从List中获得新的35个随机ID时出现重复。所以我从来没有得到两次相同的随机id。

这是我尝试过的,但是没有成功。

@schedule = current_user.schedules.new
 if @schedule.save
@user = User.find(params[:id])
 Resque.enqueue(ScheduleTweets, @user.token)
 @schedule.update_attribute(:trial, true)
 flash[:notice] = "success"
 redirect_to :back
else
 flash[:alert] = "Try again."
 redirect_to :back
end

和工人:

def self.perform(user_token)
list = List.first(6)
@status = list.statuses.create
list.each do |list|
  Status.create(list_id: "#{list}")
  if list.avatar.present?
    client.create_update(body: {text: "#{list.text}", profile_ids: profile_ids, media: { 'thumbnail' => 'http://png-1.findicons.com/files/icons/85/kids/128/thumbnail.png', 'photo' => 'http://png-1.findicons.com/files/icons/85/kids/128/thumbnail.png' } })
  end
end

然而Status.create(list_id: #list)不起作用。 有没有人知道发生了什么,以及如何让list_ids成功保存到状态?

它也与之相关: 列表有很多状态,状态属于列表

1 个答案:

答案 0 :(得分:1)

以下代码行错误:

Status.create(list_id: "#{list}") # WRONG

在您的情况下,list变量是List个实例。你将它的字符串版本传递给list_id,它需要一个整数。

这样做:

Status.create(list_id: list.id)

或者这个:

list.statuses.create

我认为以下内容也有效:

Status.create(list: list)