所以我正在编写一个代码片段,它基本上从表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成功保存到状态?
它也与之相关: 列表有很多状态,状态属于列表
答案 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)