我有一个Subscription
用户可以创建的模型。用户需要在创建后验证发送给他们的 PIN 以确认订阅。我在试图找出实现这一点的最佳方法时遇到了一些麻烦。
我实现了一个confirms
带有两个new
和create
动作的控制器。
def new
@confirm = Subscription.new
end
def create
@keyword = Keyword.joins(:shortcode).where("shortcodes.shortcode = ? and shortcodes.country = ?",params[:subscription][:shortcode],params[:subscription] [:country]).find_or_create_by_keyword(params[:subscription][:keyword])
if @confirm = Subscription.where(:phone => params[:subscription][:phone], :country => params[:subscription][:country], :keyword_id => @keyword.id).last
@confirm.check_subscription_pin(params[:subscription][:pin])
respond_with(@confirm)
elsif @confirm && @confirm.errors.any?
flash[:notice] = @confirm.errors
render :action => :new
else
flash[:notice] = "Subscription not found."
render :action => :new
end
end
这个解决方案看起来不是很有说服力,因为我总是 respond_with(@confirm)
希望允许 RESTPOST
通过JSON
.