小编Fer*_*one的帖子

如何使用 API 中的 wicked_pdf 生成 PDF

我正在创建一个 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'

ruby-on-rails wicked-pdf

3
推荐指数
1
解决办法
1696
查看次数

如何在 Ruby on Rails 中只运行一次 ActiveJob?

我在我的应用程序中与 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)

ruby-on-rails rails-activejob

2
推荐指数
1
解决办法
951
查看次数

如何在rails上的ruby中正确执行"where"子句?

我有一个应用程序,我应该使用我的数据库中的位置进行查询.一切都很好看.这是我的模特:

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)

ruby ruby-on-rails

1
推荐指数
1
解决办法
37
查看次数

标签 统计

ruby-on-rails ×3

rails-activejob ×1

ruby ×1

wicked-pdf ×1