Я задаюсь вопросом о лучшем маршруте, чтобы выполнить то, что я хочу сделать ..
Во-первых, моя проблема в том, что я хочу сохранить ввод формы с одного контроллера в другую таблицу контроллеров. но способ, которым я имею это, не работает. как мне это сделать?
В данный момент я пытаюсь просто сохранить токен учетной записи Stripe из таблицы stripeaccount в таблицу пользователей в stripe_account.
stripe_account.acct_id >> user.stripe_account
Вот контроллер полосы:
def create
@stripe_account = StripeAccount.new(stripe_account_params)
acct = Stripe::Account.create({
:country => "US",
:type => "custom",
legal_entity: {
first_name: stripe_account_params[:first_name].capitalize,
last_name: stripe_account_params[:last_name].capitalize,
type: stripe_account_params[:account_type],
dob: {
day: stripe_account_params[:dob_day],
month: stripe_account_params[:dob_month],
year: stripe_account_params[:dob_year]
},
address: {
line1: stripe_account_params[:address_line1],
city: stripe_account_params[:address_city],
state: stripe_account_params[:address_state],
postal_code: stripe_account_params[:address_postal]
},
ssn_last_4: stripe_account_params[:ssn_last_4]
},
tos_acceptance: {
date: Time.now.to_i,
ip: request.remote_ip
}
})
@stripe_account.acct_id = acct.id
respond_to do |format|
# @user = User.find(params[:id])
if @stripe_account.save
current_user = @user
@user.stripe_account = acct.id
format.html { redirect_to @stripe_account, notice: 'Stripe account was successfully created.' }
format.json { render :show, status: :created, location: @stripe_account }
else
format.html { render :new }
format.json { render json: @stripe_account.errors, status: :unprocessable_entity }
end
end
end
Это само по себе не сработало, но я решил, что я бы пропустил скрытое поле в форме @stripe_account, чтобы добавить идентификатор учетной записи в полосу в users.stripe_account, но это тоже не сработало ...
как вы можете видеть в закомментированном фрагменте кода, я также попытался найти по идентификатору пользователя, но это выдает ошибку «невозможно найти без идентификатора пользователя».
вид:
<%= form_for @stripe_account do | f | %>
...
<div class="col-md-4">
<div class="form-group">
<%= f.label :address_postal, "Zip" %>
<%= f.text_field :address_postal, class: "form-control input-lg", placeholder: "90210" %>
</div>
</div>
...
<div class="field">
<%= f.hidden_field :id, :value => current_user.id %>
</div>
...
<%= f.button "Create Account", class: "btn btn-primary btn-lg btn-block btn-custom", data: {disable_with: "<i class='fa fa-spinner fa-spin'></i> Creating account..."} %>
Ошибка, которую я получаю с текущим кодом:
undefined method `stripe_account=' for nil:NilClass
Кроме решения этой проблемы, это правильный путь решения проблемы и наиболее эффективный. Единственный другой путь, который я могу придумать, - это создать объединенную таблицу, но не уверен, что это «лучший» или более эффективный способ, и я надеюсь, что более опытные программисты могут сообщить мне, какой вариант лучше всего подходит для этого варианта использования.
У меня есть регистрация пользователей, будь то покупатель или продавец, а затем продавцы могут добавить свою банковскую информацию - так что создание пользователя и stripeaccount не сделано вместе, и я не хочу, чтобы это тоже было (на случай, если вам интересно почему я просто так не делаю)
Мне бы очень хотелось услышать, что вы, ребята, думаете по этому поводу. спасибо за ваше время.
- Если вы, ребята, хотели бы получить больше информации о моем коде, пожалуйста, не стесняйтесь, дайте мне знать - но я думаю, что я получил в основном все, что важно.