Я работал над созданием pdf-квитанций в моем простом приложении. Я смог заставить его работать для типичных/в основном жестко закодированных записей. Однако, когда я хочу, чтобы pdf распечатывал суммы для определенного платежа (это не жестко закодировано), я получаю эту ошибку в файле charges_controller.rb - «неопределенная локальная переменная или метод« сумма »для #« Я перечислял ниже мой конкретный github, а также соответствующий ниже. Большое вам спасибо за вашу помощь, ребята :)Создание PDF-файлов с нуля на Rails
Точное сообщение об ошибке:
неинициализированным постоянной Charge :: Сумма приложение/модели/charge.rb: 18: в receipt' app/controllers/charges_controller.rb:64:in
блоке (2 уровня) в шоу» приложение/контроллеры/charges_controller.rb: 60: в `шоу»
Github - https://github.com/OmarZV/PDF
charges_controller.rb
class ChargesController < ApplicationController
before_action :authenticate_user!
before_action :set_charge, only: [:show]
def index
@charges = Charge.all
end
def new
@charge = Charge.new
end
def create
@charge = Charge.new(charge_params)
respond_to do |format|
if @charge.save
format.html { redirect_to @charge, notice: 'Charge was successfully created.' }
format.json { render :show, status: :created, location: @charge }
else
format.html { render :new }
format.json { render json: @charge.errors, status: :unprocessable_entity }
end
end
end
def show
respond_to do |format|
format.html
format.json
format.pdf {
send_data @charge.receipt.render,
filename: "#{@charge.created_at.strftime("%Y-%m-%d")}-gorails-receipt.pdf",
type: "application/pdf",
disposition: :inline
}
end
end
private
def set_charge
@charge = current_user.charges.find(params[:id])
end
end
charge.rb, когда он работает
class Charge < ApplicationRecord
belongs_to :user
def receipt
Receipts::Receipt.new(
id: id,
product: "GoRails",
company: {
name: "One Month, Inc.",
address: "37 Great Jones\nFloor 2\nNew York City, NY 10012",
email: "[email protected]",
},
line_items: [
["Date", created_at.to_s],
["Account Billed", "(#{user.email})"],
["Product", "GoRails"],
["Amount", "Amount"],
["Charged to", "{Card_type}"],
]
)
end
end
charge.rb, когда он не работает
class Charge < ApplicationRecord
belongs_to :user
def receipt
Receipts::Receipt.new(
id: id,
product: "GoRails",
company: {
name: "One Month, Inc.",
address: "37 Great Jones\nFloor 2\nNew York City, NY 10012",
email: "[email protected]",
},
line_items: [
["Date", created_at.to_s],
["Account Billed", "(#{user.email})"],
["Product", "GoRails"],
["Amount", "$#{Amount/100}.00"],
["Charged to", "#{Card_type} (**** **** **** #{Card_last4})"],
]
)
end
end
user.rb
class User < ApplicationRecord
devise :database_authenticatable, :registerable,:recoverable, :rememberable, :trackable, :validatable
has_many :charges
end
Пожалуйста, обратите внимание на [Проводка хорошие вопросы] (http://stackoverflow.com/help/how-to-ask), который подробно и полезные инструкции, которые помогут нам помочь тебе. Какую строку представляет ошибка? Пожалуйста, напишите полную ошибку, вы отключили ее слишком рано. Пожалуйста, отформатируйте свой код. – Genzume
Я уверен, что вы не разместили часть своего кода, откуда исходит ошибка. Можете ли вы опубликовать исходную ошибку, включая файл, из которого он поступает? \ –
max и Tyler благодарит вас за ваши комментарии, извинился за то, как был представлен вопрос. Я только что ввел полное исходное сообщение об ошибке, а также charge.rb (когда он работает и дает мне pdf) и charge.rb (что я хочу, но дает мне ошибку). Еще раз спасибо – Omar