HTTParty 无法获取专辑 ID
HTTParty cannot get id of album
我正在构建一个 rails 应用程序,我正在尝试从 API.
中获取一些数据
这是我的控制器
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)
end
def show
end
end
这是我的索引视图
<main role="main" class="flex-shrink-0">
<div class="container">
<h1 class="mt-5">Albums</h1>
<p class="lead">Here we show all albums and it's details</p>
<div class="row">
<% @albums.each do |album| %>
<div class="col-md-4">
<h5 class="card-title">
<%= album['title'] %>
</h5>
<p>User_id: <%= album['user_id'] %> | id: <%= album['id'] %><p>
<%= link_to "View Album", album, class: "btn btn-primary" %>
</div>
<% end %>
</div>
</div>
<%= will_paginate @albums, renderer: WillPaginate::ActionView::BootstrapLinkRenderer, class: 'margin-auto' %>
</main>
这里的问题是 link,我在路由文件中有 resources :albums
。
albums GET /albums(.:format) albums#index
POST /albums(.:format) albums#create
new_album GET /albums/new(.:format) albums#new
edit_album GET /albums/:id/edit(.:format) albums#edit
album GET /albums/:id(.:format) albums#show
PATCH /albums/:id(.:format) albums#update
PUT /albums/:id(.:format) albums#update
DELETE /albums/:id(.:format) albums#destroy
users_show GET /users/show(.:format) users#show
root GET / albums#index
但是,当我将鼠标悬停在按钮上时,它 link 指向以下
我如何只 link 访问 ID,即 localhost:3000/albums/2
更新 1
routes.rb
Rails.application.routes.draw do
resources :albums
get 'users/show'
root 'albums#index'
end
那应该很容易。
这是您获取相册 ID 的方式:
album['id']
并且您可以使用 ID 获取 link:
<%= link_to "View Album", album_path(album['id']), class: "btn btn-primary" %>
警告:路径必须是单数! album_path
# add to your routes.rb
resources :albums
我正在构建一个 rails 应用程序,我正在尝试从 API.
中获取一些数据这是我的控制器
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)
end
def show
end
end
这是我的索引视图
<main role="main" class="flex-shrink-0">
<div class="container">
<h1 class="mt-5">Albums</h1>
<p class="lead">Here we show all albums and it's details</p>
<div class="row">
<% @albums.each do |album| %>
<div class="col-md-4">
<h5 class="card-title">
<%= album['title'] %>
</h5>
<p>User_id: <%= album['user_id'] %> | id: <%= album['id'] %><p>
<%= link_to "View Album", album, class: "btn btn-primary" %>
</div>
<% end %>
</div>
</div>
<%= will_paginate @albums, renderer: WillPaginate::ActionView::BootstrapLinkRenderer, class: 'margin-auto' %>
</main>
这里的问题是 link,我在路由文件中有 resources :albums
。
albums GET /albums(.:format) albums#index
POST /albums(.:format) albums#create
new_album GET /albums/new(.:format) albums#new
edit_album GET /albums/:id/edit(.:format) albums#edit
album GET /albums/:id(.:format) albums#show
PATCH /albums/:id(.:format) albums#update
PUT /albums/:id(.:format) albums#update
DELETE /albums/:id(.:format) albums#destroy
users_show GET /users/show(.:format) users#show
root GET / albums#index
但是,当我将鼠标悬停在按钮上时,它 link 指向以下
我如何只 link 访问 ID,即 localhost:3000/albums/2
更新 1
routes.rb
Rails.application.routes.draw do
resources :albums
get 'users/show'
root 'albums#index'
end
那应该很容易。
这是您获取相册 ID 的方式:
album['id']
并且您可以使用 ID 获取 link:
<%= link_to "View Album", album_path(album['id']), class: "btn btn-primary" %>
警告:路径必须是单数! album_path
# add to your routes.rb
resources :albums