【发布时间】:2019-10-21 20:36:51
【问题描述】:
我正在构建一个 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>
这里的问题是链接,我在路由文件中有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
但是,当我将鼠标悬停在按钮上时,它会链接到以下内容
如何只链接到 ID,即 localhost:3000/albums/2
更新 1
routes.rb
Rails.application.routes.draw do
resources :albums
get 'users/show'
root 'albums#index'
end
【问题讨论】:
-
您没有必要或不希望放入诸如“UPDATE 1”之类的标签或标题。 SO 有一个修订跟踪系统,因此我们可以查看是否有更改。相反,只需将任何更新或更改合并到问题的文本中,就好像您最初拥有它一样。它有助于保持可读性。
标签: ruby-on-rails ruby ruby-on-rails-5 httparty