如何通过rails控制台将帖子添加到用户ID

时间:2016-08-10 05:32:25

标签: ruby-on-rails ruby

如何通过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);
    }
  }

5 个答案:

答案 0 :(得分:2)

您可以通过@user像这样创建帖子,而不是单独创建帖子:

@user = User.find(2)
@user.posts.create(content: "nice day we are having")

它会自动将user_id分配给帖子记录。

答案 1 :(得分:1)

如果has_manyUser之间有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_tohas_many关系

答案 4 :(得分:0)

首先,检查User和Post之间的关联,而不是在控制台中写下:

@post = Post.create(content: "nice day we are having", user: User.find(2))