我正在创建一个 API,它应该根据数据库上的一些信息生成一个 PDF。
尝试调用操作时出现错误:
ActionController::UnknownFormat (ActionController::UnknownFormat):
app/controllers/v1/trips_controller.rb:56:in `print_monthly_trips'
Run Code Online (Sandbox Code Playgroud)
这是我的控制器:
/#application_controller.rb
class ApplicationController < ActionController::API
include Response
include ExceptionHandler
include Pundit
include ActionController::MimeResponds
/#trips_controler.rb
def print_monthly_trips
@trips_to_print = current_user.trips_for_month(3)
respond_to do |format|
format.html
format.pdf do
render pdf: "file_name",
template: "trips/report.html.erb",
layout: 'pdf.html'
end
format.json do
render pdf: "file_name",
template: "trips/report.html.erb",
layout: 'pdf.html'
end
end
end
Run Code Online (Sandbox Code Playgroud)
我的路线:
get 'print_monthly_trips', to: 'trips#print_monthly_trips'
Run Code Online (Sandbox Code Playgroud)
我使用以下命令调用我的 API:
http GET https://localhost/print_monthly_trips Accept:'application/vnd.trips.v1+json' Authorization:'my_token'
Run Code Online (Sandbox Code Playgroud)
那么,为什么我会得到这个:
ActionController::UnknownFormat (ActionController::UnknownFormat):
app/controllers/v1/trips_controller.rb:56:in`print_monthly_trips'
我在我的应用程序中与 Stripe 一起使用订阅和计划。我的计划实体在模型上有很多“视觉”数据,并且与共享标识符的支付网关相关。
我已经有一个生成我的基本计划数据的迁移。像这样:
class CreateBasicPlanData < ActiveRecord::Migration[5.1]
def change
Plan.create(name:'Hobby',
visibility: 'Low Visibility',
card_description:'Free portfolio listing good for beginners.',
features_description:'<ul><li>5 Portfolio Images</li><li>Messaging to other Talent</li><li>Basic Search Ranking</li></ul>',
price: 0,
css:'plan-hobby',
number_albums: 1,
number_photos_per_album: 5,
payment_gateway_plan_identifier: 'hobby'
)
Plan.create(name:'Professional', card_description:'Solid portfolio for those wanting more exposure and booking opportunities.',
visibility: 'High Visibility',
features_description:'<strong>Everything included in Hobby <em>PLUS:</em></strong><ul><li>25 Portfolio Images</li><li>Intermediate Search Ranking</li><li>Multi-state portfolio listing</li></ul>',
price: 4.99,
css:'plan-professional',
number_albums: 5,
number_photos_per_album: 25,
payment_gateway_plan_identifier: 'professional'
)
Run Code Online (Sandbox Code Playgroud)
我想创建一个作业,当系统正常时,从我的本地数据库中获取所有数据,并创建条纹计划。我的代码是这样的:
class SyncLocalPlansWithStripe < ActiveJob::Base
def perform …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,我应该使用我的数据库中的位置进行查询.一切都很好看.这是我的模特:
class TalentType < ApplicationRecord
def talent_abilities
TalentAbility.where(talent_type: self)
end
end
Run Code Online (Sandbox Code Playgroud)
在我的控制台中,当我进行查询时,它正确地返回数据但是查询的最后一行是ActiveRecord :: Relation.问题是,在我看来,我做了一个:
<h6 class="subheading">Abilities</h6>
<%= current_user.talent.talent_type.talent_abilities.each do |ta| %>
<div class="form-group no-border bottom-0">
<%= ta.name %>
</div>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我的最后一行是:
<ActiveRecord::Relation [#<TalentAbility id: 1, name: "Scuba diving", requires_description: false, talent_type_id: 1, created_at: "2018-11-21 15:10:02", updated_at: "2018-11-21 15:10:02">, #<TalentAbility id: 2, name: "River rafting", requires_description: false, talent_type_id: 1, created_at: "2018-11-21 15:10:02", updated_at: "2018-11-21 15:10:02">,
Run Code Online (Sandbox Code Playgroud)
因此,在控制台中,我完全恢复了所有TalentAbility,但最后一个元素带有这个ActiveRecord的东西.像这样:
[#<TalentAbility:0x00000005cdab68
id: 1,
name: "Scuba diving",
requires_description: false,
talent_type_id: 1,
created_at: Wed, 21 …Run Code Online (Sandbox Code Playgroud)