我正在尝试使用rspec编写测试,测试会话变量是否已正确更改:
这是我要测试的GamesController的一部分:
def change_player
if session[:player] == 0
session[:player] = 1
else
session[:player] = 0
end
end
Run Code Online (Sandbox Code Playgroud)
这是我的game_spec.rb文件:
require "spec_helper"
describe GamesController do
describe "#change_player" do
it "should change player to 1" do
session[:player] = 0
get :change_player
assigns(session[:player]).should == 1
end
end
end
Run Code Online (Sandbox Code Playgroud)
这是我运行测试时收到的错误消息:
Failures:
1) GamesController#change_player should set player to 0
Failure/Error: session[:player] = 0
NameError:
undefined local variable or method `session' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x00000103b3b0d8>
# ./spec/features/game_spec.rb:6:in `block (3 levels) in <top (required)>'
Finished in 0.01709 seconds
1 example, …Run Code Online (Sandbox Code Playgroud) 我正在尝试为rails 3.2.13 app设置Stripe Connect.我已将用户定向到Stripe并从Stripe接收了授权代码:
HTTP/1.1 302 Found
Location: http://localhost:3000/yourshop/stripe?scope=read_write&state=1234&code=AUTHORIZATION_CODE
Run Code Online (Sandbox Code Playgroud)
下一步是根据Stripe文档,通过access_token_url发出POST请求以接收access_token:
curl -X POST https://connect.stripe.com/oauth/token \
-d client_secret=sk_test_code \
-d code=AUTHORIZATION_CODE \
-d grant_type=authorization_code
Run Code Online (Sandbox Code Playgroud)
我对curl没有任何经验是一个rails应用程序,我在Stripe API中找不到任何似乎这个POST请求包含在Stripe Gem中的内容:
宝石文件:
gem 'omniauth-stripe-connect'
gem 'stripe'
Run Code Online (Sandbox Code Playgroud)
模型
def save_with_stripe_account
code = self.stripe_code
customer = curl -X POST https://connect.stripe.com/oauth/token \
-d "client_secret=ENV['STRIPE_SECRET_KEY']" \
-d "code=code" \
-d "grant_type=authorization_code"
raise customer.inspect
end
Run Code Online (Sandbox Code Playgroud)
错误:
syntax error, unexpected tCONSTANT, expecting keyword_do or '{' or '('
Run Code Online (Sandbox Code Playgroud)
不确定是否只是错误的格式为rails中的curl或者是否需要使用其他东西.
我正在尝试将一些代码移出控制器,并移入服务对象。如何从服务对象访问devise sign_in辅助方法。
class CompleteAccountRegistration
def self.call(account_id, plan_id)
@account = Account.find(account_id)
self.create_user_account
self.create_subscription(plan_id)
sign_in(User.find(@account.owner_id))
end
Run Code Online (Sandbox Code Playgroud)
我的测试中出现以下错误。
NoMethodError:
undefined method `sign_in' for CompleteAccountRegistration:Class
Run Code Online (Sandbox Code Playgroud) 我几乎不好意思问,但是当我git diff在特定文件上运行时,它只显示前26行左右的变化.
是否有一个页面向下命令将显示其余的更改?
我正在尝试创建一个 Rails FormBuilder 来使用引导样式设置表单样式:
<div class="form-group has-error">
<label for="exampleInputEmail1">Email address</label>
<div class="input-group>
<input type="email" class="form-control" id="exampleInputEmail1" placeholder="Enter email">
<span class="input-group-addon glyphicon glyphicon-user"></span>
</div>
<p class="help-block>can't be blank</p>
</div>
Run Code Online (Sandbox Code Playgroud)
当我只有一个 div 标签时,我就能让表单生成器工作(不包括传统引导表单的输入组)。我的问题是,我无法使用类为“input-group”的 div 获取嵌套的 content_tag ”才能正常工作。我尝试添加元素并将 content_tag 包装在捕获中,但无济于事。
class LargeFormBuilder < ActionView::Helpers::FormBuilder
include ActionView::Helpers::TagHelper
include ActionView::Helpers::CaptureHelper
include ActionView::Helpers::TextHelper
attr_accessor :output_buffer
%w(text_field text_area email_field password_field).each do |form_method|
define_method(form_method) do |*args|
attribute = args[0]
options = args[1] || {}
options[:label] ||= attribute
options[:class] ||= "form-control input-lg"
label_text ||= options.delete(:label).to_s.titleize
content_tag(:div, class: "form-group #{'has-error' …Run Code Online (Sandbox Code Playgroud)