Olá, pessoal. Estou fazendo um projeto individual onde o meu objetivo é consumir uma API e favoritar objetos dessa API. Pra essa funcionalidade, Criei um model e um controller chamados FavoriteBuilding e uma tabela que possui 2 chaves estrangeiras: user_id e building_id.
Acredito que devo ter errado nesse ponto pois não existe uma tabela building para que eu possa pegar a chave primária. Existe apenas um model onde utilizo a gem FARADAY para consumir a API. Quando clico para favoritar um item recebo o seguinte erro:
NoMethodError (undefined method `arel_table' for Building:Class):
app/controllers/favorite_buildings_controller.rb:5:in `update'Assim está o model Building:
API_URL = Rails.configuration.apis[:orulo_buildings_api]
attr_reader :id, :name, :description
  def initialize(args)
    @id = args[:id]
    @name = args[:name]
    @description = args[:description]
  end
 def self.find(id)
    conn = Faraday.new(
      url: API_URL,
      headers: { "Authorization" => "token here" }
    )
    response = conn.get
    building = JSON.parse(response.body, symbolize_names: true)
    new(id:  :id, name: building[:name], description: building[:description])
  endFavoriteBuildingsController:
def update
    favorite = FavoriteBuilding.where(building: Building.find(params[:building]))
    if favorite == []
      FavoriteBuilding.create(building: Building.find(params[:building]))
      @favorite_building = true
    else
      favorite.destroy_all
      @favorite_building = false
    end
    respond_to do |format|
      format.html {}
      format.js {}
    end
  endO template do update:
$ ('#favorite_building_link').text("<%= favorite_text %>");BuildingsController:
 def index
    @buildings = Building.all
    @favorite_building = FavoriteBuilding.where(building: Building.find(params[:id])) == [] ? false : true
  endOBS: Assisti alguns tutoriais e optei por nÃo utilizar gems para entender melhor o mecanismo mas confesso que nÃo compreendi a linha 2 do método index e nÃo sei se estou chamando o parâmetro correto.
Index View:
<% @buildings.each do |building| %>
    <h4><%= building.name %></h4>
          <%= building.description%>
    <%= link_to favorite_text, favorite_building_path(building), method: :patch, id: 'favorite_building_link',
                 remote: :true %>Criei um helper no application_controller
def favorite_text
    return @favorite_building? "UnFavorite" : "Favorite"
  end
  helper_method :favorite_textAlguém poderia me dar uma luz? Sei que não está no contexto do curso do rails e é um pouco mais avançado mas não consegui encontrar uma solução por conta própria. Recomendariam utilizar uma gem? Acredito que existem formas mais simples de se fazer isso. Esse código me parece mais complexo do que deveria ser de fato. Obrigada desde já <3
