Я видел довольно много постов на эту тему, и прошу прощения за не будучи в состоянии использовать их для моего примера, но я могу показаться, чтобы заставить его работатьдоступа Переменные экземпляра вне класса - Рубин
У меня есть форма, могут быть предварительно заполнены информацией пользователей, если данные exisits
def new
BraintreeTransaction::PopulateForm.new(@user).populate_form
end
module BraintreeTransaction
class PopulateForm
def initialize(user)
@user = user
end
def populate_form
return if Transaction.where(user_id: @user.id, completed: false).empty?
user_details = Transaction.where(user_id: @user.id, completed: false).order(created_at: :desc).first
@first_name = user_details.first_name if user_details.first_name.present?
@last_name = user_details.last_name if user_details.last_name.present?
end
end
Моя форма
<%= text_field_tag :first_name, @first_name, placeholder: 'First Name', required: true %>
<%= text_field_tag :last_name, @last_name, placeholder: 'Last Name', required: true %>
Как получить доступ к переменной экземпляра в этой ситуации?
Благодаря
Вы имеете в виду '@ user'? Вам нужно и accessor, например 'attr_reader: user' (или вручную определить' def user; @user end') – brito
вы могли бы объяснить, почему '@ user'? – Richlewis
В вашем названии упоминается доступ к «переменной экземпляра класса», а '@ user' - это переменная экземпляра, поэтому я предположил, что вы спрашиваете, как получить доступ к ней за пределами« PopulateForm ». Если я сделал неправильное предположение, дайте мне знать. – brito