如何通过rails控制台将用户附加到帖子,我忘记了这样做的正确方法。因此,假设您创建了一个帖子,并希望将其附加到您创建的user_id,我将如何通过rails控制台执行此操作。
Rails控制台
function encodeImageFileAsURL(index) {
var filesSelected = document.getElementById("inputFileToLoad").files;
index = index || 0;
if (filesSelected.length > 0 && index < filesSelected.length) {
var fileToLoad = filesSelected[index];
var fileReader = new FileReader();
fileReader.onloadend = function(fileLoadedEvent) {
var srcData = fileLoadedEvent.target.result; // <--- data: base64
var newImage = document.createElement('img');
newImage.src = srcData;
document.getElementById("imgTest").appendChild(newImage);
if (index < filesSelected.length) {
encodeImageFileAsURL(index + 1)
}
}
fileReader.readAsDataURL(fileToLoad);
}
}
答案 0 :(得分:2)
您可以通过@user像这样创建帖子,而不是单独创建帖子:
@user = User.find(2)
@user.posts.create(content: "nice day we are having")
它会自动将user_id分配给帖子记录。
答案 1 :(得分:1)
如果has_many
和User
之间有Post
个关联,例如'用户has_many帖子&#39;然后在控制台中,您可以将它们附加为:
@user.posts << @post
答案 2 :(得分:1)
简单步骤:
创建新帖子:
p = Post.new
p.title = "post title"
p.body = "post body"
查找要附加到帖子的用户
u = User.find(2)
p.user_id = u.id
p.save
效果很好
或尝试
u = User.find(2)
p = u.posts.build("title"=> "post title", "body" => "post body")
p.save
此方法需要先关联才能在控制台中运行命令。
答案 3 :(得分:1)
如果有很多帖子,那么运行循环以将用户ID一次附加到所有帖子上将具有成本效益。在控制台中执行此操作的一种方法是:
everyevery = Post.all #Assign all posts to a variable
然后遍历并附加ID:
everyevery.each do |post|
if post.user_id = nil
post.user_id = 1 # Assigns user_id of 1. If there are 5 then you could do say rand(1..5)
post.save
end
end
当然,这假设您已经拥有belongs_to
和has_many
关系
答案 4 :(得分:0)
首先,检查User和Post之间的关联,而不是在控制台中写下:
@post = Post.create(content: "nice day we are having", user: User.find(2))