Вот функция, которую я хочу:
- Форма отправляется
- Форма ввода
valid?
- Форма ввода (специфический ввод) проверяется через API с помощью
verify
метода
- если true, начинается следующая функция
Вот код, который у меня сейчас есть для создания:
def create
@tweet_order = TweetOrder.new(tweet_order_params)
@order = Order.find(params[:order_id])
@tweet_order.order_id = @order.id
if @tweet_order.valid?
begin
#Stripe_charge_
rescue Stripe::CardError => e
charge_error = e.message
end
if charge_error
flash[:error] = charge_error
redirect_to @order
else
if @tweet_order.save
....
Вот как я хочу:
def verify
TwitterApi.client.search("to:#{@order.twitter_tag}", result_type: "recent").take(10).collect do |tweet|
tweet.user.screen_name if tweet.user.screen_name.match(/#{@order.listing.listing_tweet.twitter_id}/i)
end
end
def create
@tweet_order = TweetOrder.new(tweet_order_params)
@order = Order.find(params[:order_id])
@tweet_order.order_id = @order.id
if @tweet_order.valid? && verify
begin
#Stripe_charge_
rescue Stripe::CardError => e
charge_error = e.message
end
if charge_error
flash[:error] = charge_error
redirect_to @order
else
if @tweet_order.save
....
Обратите внимание на разницу:
@tweet_order.valid?
против @tweet_order.valid? && verify
Метод проверки создает true
или false
. Я проверил это в представлении переднего плана, и оно работает, но теперь я хочу реализовать его для проверки перед созданием заряда полосы и сохранения создания.
Как я могу успешно и эффективно делать это?