У меня есть форма подписки, где я пытаюсь установить выбранный вами план, бизнес, который они хотели бы связать с подпиской и данными платежа. В моей форме я использую выберите тег, чтобы отобразить список всех предприятий и отображается правильно, на мой взгляд, но на сохранить я получаю следующее сообщение об ошибке:Выбрать тег, неопределенный метод `map '
undefined method `map' for #<Business:0x007f8ea7955b90>
new.html.erb
<div class="field">
<%= select_tag :business_id, options_from_collection_for_select(@businesses, "id", "name") %>
</div>
subscriptions_controller.rb
...
def new
@subscription = Subscription.new
@plan = Plan.find(params["plan_id"])
@businesses = Business.all
end
def create
@subscription = Subscription.new(subscription_params)
raise "Please, check subscription errors" unless @subscription.valid?
@subscription.process_payment
@subscription.save
redirect_to @subscription, notice: 'Subscription was successfully created.'
rescue => e
flash[:error] = e.message
render :new
end
private
def set_subscription
@subscription = Subscription.find(params[:id])
end
def subscription_params
params.require(:subscription).permit(:plan_id, :business_id, :card_token, :coupon)
end
Am I настройки select_tag правильно? Нужно ли исправить мой метод создания? Посмотрел на другие решения на SO с небольшим успехом.
Не могли бы вы добавить несколько строк из верхней части трассировки стека ошибок? Думаю, до десяти строк должно быть достаточно. – amar47shah
@ amar47shah делает изображение выше? –
Да, это действительно помогает. Похоже, что действие 'create' пыталось снова отобразить шаблон' new', возможно, потому, что новая подписка была недействительной. Обратите внимание, что 'render: new' не вызывает действие' new' в контроллере. Мне все еще сложно рассказать, что происходит. Похоже, что значение '@ business' изменилось из коллекции в единый бизнес, но я не могу понять, почему.Для целей отладки попробуйте снова установить '@businesses = Business.all' в блок' rescue' '' create'. О, подождите, теперь у меня есть идея! – amar47shah