SyntaxError: Unmatched OUTDENT on line 9当我尝试编译以下coffeescript代码时,我收到错误.我不确定我做错了什么.缩进似乎是正确的,我拥有我想要的一切.
row_possibilities = (grid) ->
for rows in [0..8] by 1
for columns in [0..8] by 1
if(Array.isArray(grid[rows][columns])
for possible_val in grid[rows][columns] by 1
grid = unique_row_possibility(grid, rows, columns, possible_val)
if(Array.isArray(grid[rows][columns]) == false)
break
return grid
Run Code Online (Sandbox Code Playgroud)
代码应该做的是运行三个for循环,如果发生某种情况,则打破最里面的for循环.
在所有for循环运行之后.我想返回变量网格.我已经仔细检查了间距,我在repl.it上试了一下,但我无法弄明白.
所以这是使用curl的请求:
curl -XPOST -H content-type:application/json -d "{\"credentials\":{\"username\":\"username\",\"key\":\"key\"}}" https://auth.api.rackspacecloud.com/v1.1/auth
Run Code Online (Sandbox Code Playgroud)
我一直试图用ruby做同样的请求,但我似乎无法让它工作.
我也尝试了几个库,但我无法让它工作.这是我到目前为止所拥有的:
uri = URI.parse("https://auth.api.rackspacecloud.com")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new("/v1.1/auth")
request.set_form_data({'credentials' => {'username' => 'username', 'key' => 'key'}})
response = http.request(request)
Run Code Online (Sandbox Code Playgroud)
我得到415不支持的媒体类型错误.
我在Rails中创建了一个嵌套模型,但我想在控制器中的嵌套模型中添加字段.我没有使用hidden_field_tag,因为它可能被篡改.
这是我的参数哈希:
Parameters: {"dummy"=>{"users_attributes"=>{"0"=>{"email"=>"jjjj@gmail.com", "id"=>"", "_destroy"=>"false"}, "1"=>{"email"=>"qqq@gmail.com", "id"=>"", "_destroy"=>"false"}}}, "commit"=>"Create Dummy"}
Run Code Online (Sandbox Code Playgroud)
我想要的是在每个user_attributes下有一个名为companyid的字段.假设我想让companyid成为"公司",那么我认为这样可行:
len = params["dummy"]["users_attributes"].size
counter = 0
while counter < len
params["dummy"]["users_attributes"][counter]["companyid" => "company"]
counter = counter + 1
end
Run Code Online (Sandbox Code Playgroud)
但是,我得到"未定义的方法`[]'为nil:nilClass"错误为while循环中的第一行.我不确定为什么.
有人可以帮助我,所以我可以修改params哈希?
编辑:所以,我终于明白了.我并没有真正使用任何解决方案.首先,我为hiddenid设置了hidden_field标记为空白.然后,在我的控制器中,我把:
params["dummy"]["users_attributes"].each do |key, val|
params["dummy"]["users_attributes"][key]["companyid"] = "company"
end
Run Code Online (Sandbox Code Playgroud)
不是最优雅的代码,但它会起作用.
编码ruby时我遇到了一个奇怪的情况:
def foo(bar=true,baz,*args)
end
Run Code Online (Sandbox Code Playgroud)
引发此错误:
syntax error, unexpected tSTAR
Run Code Online (Sandbox Code Playgroud)
而这些:
def foo(bar,baz=true,*args)
end
def foo(bar=true,baz=true,*args)
end
Run Code Online (Sandbox Code Playgroud)
没关系.
为了增加陌生感,这些:
def foo(bar,baz=true)
end
def foo(bar=true,baz)
end
Run Code Online (Sandbox Code Playgroud)
都工作.
但是,这个:
def foo(bar=true,baz,args=true)
end
Run Code Online (Sandbox Code Playgroud)
引发错误,但这些:
def foo(bar=true,baz=true,args)
end
def foo(bar,baz=true,args=true)
end
Run Code Online (Sandbox Code Playgroud)
没事.
我认为有一个合乎逻辑的原因,为什么允许某些组合而其他组合不允许,但我无法通过谷歌或搜索stackoverflow找到它们.我的问题很简单:为什么其中一些组合允许,而其他组合则不允许?
所以我有一些这样的模型规格:
describe 'something' do
it 'another thing' do
a_model = FactoryGirl.create(:a_model)
another = FactoryGirl.create(:another)
#some code using a_model and another
end
end
Run Code Online (Sandbox Code Playgroud)
然后,我有另一个模型规格:
describe 'something else' do
it 'another test' do
a_model = FactoryGirl.create(:a_model)
another = FactoryGirl.create(:another)
#different code using a_model and another
end
end
Run Code Online (Sandbox Code Playgroud)
我的问题是我如何干燥它?我查看了共享上下文,但随后无法访问我的模型。我可以创建一个辅助方法并返回一个对象数组/散列,但似乎应该内置一些东西来以优雅的方式执行此操作。
我一直在寻找互联网,但我似乎无法让这个工作.
我想做的就是发送一个post请求并在rspec中测试响应.
这是我在controller_spec中的内容:
it 'my test' do
post 'api/company_id', :parameters => {key => 'value'}
response.should be_success
end
Run Code Online (Sandbox Code Playgroud)
我收到此错误:意外的$ end,期待keyword_end(SyntaxError)
这是post语句发生的行(代码块中的第二行).
我很难过,但任何帮助都会很棒.