Ruby on rails 如何将用户信息传递到每个rails语句中

Ruby on rails 如何将用户信息传递到每个rails语句中,ruby-on-rails,ruby,httparty,Ruby On Rails,Ruby,Httparty,因此,我目前正在尝试将用户信息传递到rails中的每个语句中,以便显示相册用户信息 这是我到目前为止所拥有的 index.html.erb 相册 这里我们展示了所有专辑及其详细信息 作者: 相册.rb classalbum{'Content-Type'=>'application/json'}) 结束 def秀 @相册=HTTParty .get('https://jsonplaceholder.typicode.com/albums/“+params[:id],:headers=>{'Co

因此,我目前正在尝试将用户信息传递到rails中的每个语句中,以便显示相册用户信息

这是我到目前为止所拥有的

index.html.erb


相册

这里我们展示了所有专辑及其详细信息

作者:
相册.rb

classalbum
user.rb

class User < ApplicationRecord
  has_many :albums
end
class用户
相册控制器.rb

require 'will_paginate/array'

class AlbumsController < ApplicationController
  def index
    @albums = HTTParty
      .get('https://jsonplaceholder.typicode.com/albums', :headers => {'Content-Type' => 'application/json'})
      .paginate(:page => params[:page], :per_page => 10)

    @user = HTTParty
      .get('https://jsonplaceholder.typicode.com/users/' + params[:id], :headers => {'Content-Type' => 'application/json'})
  end

  def show
    @album = HTTParty
      .get('https://jsonplaceholder.typicode.com/albums/' + params[:id], :headers => {'Content-Type' => 'application/json'})

    @albumPhotos = HTTParty
      .get('https://jsonplaceholder.typicode.com/photos?album=' + params[:id], :headers => {'Content-Type' => 'application/json'})
      .paginate(:page => params[:page], :per_page => 10)

    @user = HTTParty
      .get('https://jsonplaceholder.typicode.com/users/' + params[:id], :headers => {'Content-Type' => 'application/json'})
  end
end
require'will_paginate/array'
类AlbumsController<应用程序控制器
def索引
@相册=HTTParty
.get('https://jsonplaceholder.typicode.com/albums“,:headers=>{'Content-Type'=>'application/json'})
.paginate(:page=>params[:page],:per_page=>10)
@用户=HTTParty
.get('https://jsonplaceholder.typicode.com/users/“+params[:id],:headers=>{'Content-Type'=>'application/json'})
结束
def秀
@相册=HTTParty
.get('https://jsonplaceholder.typicode.com/albums/“+params[:id],:headers=>{'Content-Type'=>'application/json'})
@相册照片=HTTParty
.get('https://jsonplaceholder.typicode.com/photos?album=“+params[:id],:headers=>{'Content-Type'=>'application/json'})
.paginate(:page=>params[:page],:per_page=>10)
@用户=HTTParty
.get('https://jsonplaceholder.typicode.com/users/“+params[:id],:headers=>{'Content-Type'=>'application/json'})
结束
结束

我从API获取所有信息,没有数据库数据。明显地我试图获取用户数据,将其放入
每个
中,但我还想确保
用户ID
与相册显示中的匹配,以便它显示正确的用户信息

您可以通过循环将用户详细信息合并到相册中,或者请更新API获取用户和相册的组合响应

现在,

class AlbumsController < ApplicationController
   def index
      @albums = HTTParty.get('https://jsonplaceholder.typicode.com/albums', :headers => {'Content-Type' => 'application/json'}).paginate(:page => params[:page], :per_page => 10)

      @user = HTTParty.get('https://jsonplaceholder.typicode.com/users', :headers => {'Content-Type' => 'application/json'})

      @albums.each do |album|
        user = @users.first{|u| u if u.id == album.userId }
        album.merge!({name: user.name, email: user.email})  if user.present?
      end
  end
end
class AlbumsController{'Content-Type'=>'application/json'}).paginate(:page=>params[:page],:per_page=>10)
@user=HTTParty.get('https://jsonplaceholder.typicode.com/users“,:headers=>{'Content-Type'=>'application/json'})
@相册。每个人都有相册|
user=@users.first{u | u如果u.id==album.userId}
相册,合并!({name:user.name,email:user.email})如果user.present?
结束
结束
结束
基于此,您可以根据您的情况显示正确的用户信息,如果存在用户电子邮件,请检查

<% @albums.each do |album| %>
    <% if album["email"].present? %>
        <div class="col-md-4">
          <%# image_tag(@albumImage ['thumbnailUrl']) %>
          <h5 class="card-title">
            <%= album['title'] %>
          </h5>

          <p>By: <%= album.user['userId'] %><p>
          <%= link_to "View Album", album_path(album['id']), class: "btn btn-primary" %>
        </div>
     <% end %>
 <% end %>

作者:

你能详细说明一下吗?我不知道你的问题是什么,我正试图将用户信息添加到索引
中的
每个
语句中,方法是:
如果我得到正确的信息,您可以直接这样做
album.user.id
您将获得该用户的id第一块代码放在哪里?我将如何将响应合并到单独的URL中?@B.J.B请查找更新的答案。如果API由您维护,那么您可以通过组合来自
https://jsonplaceholder.typicode.com
但我会查看更新后的响应如果您没有自定义权限,请转到上面的回答我遇到语法错误