小编Dav*_*vid的帖子

Ruby-on-Rails:渲染帮助:layout => false

我试图从API访问rails应用程序资源(它发送一个Application/XML GET请求),我不想解析XML文件.

在我的资源控制器中,我有以下内容:

def get_resource
    @my_resource = Resources.new
    render :xml => @my_resource
end
Run Code Online (Sandbox Code Playgroud)

它按预期生成xml文件.如果我用以下代替:

render :layout => false
Run Code Online (Sandbox Code Playgroud)

我的API报告"模板丢失"错误.我也尝试过以下方法:

render :xml => @identity, :layout => false
Run Code Online (Sandbox Code Playgroud)

但无论如何页面呈现.什么是正确的方法?

ruby-on-rails render actionpack

5
推荐指数
1
解决办法
2万
查看次数

目标C:如何在这种情况下释放代表

我在请求完成后使用自定义委托对象来执行一些清理任务.ASIHTTPRequest不保留代理,因此我无法自动发布它们.现在,这就是我分配和释放代表的方式.

App代表

MyDelegate *delegate = [[MyDelegate alloc] init];   
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:delegate];
Run Code Online (Sandbox Code Playgroud)

MyDelegate.m

- (void)requestFinished:(ASIHTTPRequest *)request
{
    [self release];
}

- (void)requestFailed:(ASIHTTPRequest *)request
{
    [self release];
}
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?让代表们发布自己看起来很难看,Xcode的构建和分析让我感到不舒服.

delegates release objective-c autorelease asihttprequest

5
推荐指数
1
解决办法
1634
查看次数

OmniAuth和Devise,如何设置可选密码

我正在使用OmniAuthDevise来验证用户身份.我希望使用OmniAuth提供商注册的用户能够设置可选密码(API身份验证所需),但我遇到了问题.

如果用户通过OmniAuth创建帐户并尝试设置密码,则会收到以下错误:

BCrypt::Errors::InvalidHash in RegistrationsController#update
Run Code Online (Sandbox Code Playgroud)

我相信这是因为密码是空白的.这有什么好办法?我考虑过生成一个随机密码,但这种方法的问题是用户需要知道当前密码才能编辑设置.

编辑:我看过允许用户更改设置而不需要当前密码,这就是我想要做的事情,只有当用户最初没有密码时.

passwords rubygems ruby-on-rails devise omniauth

5
推荐指数
2
解决办法
1952
查看次数

401 Unauthorized在GET请求(https)上使用正确的凭据返回

我试图使用HttpWebRequest登录我的网络应用程序,但我一直收到以下错误:

System.Net.WebException: The remote server returned an error: (401) Unauthorized.
Run Code Online (Sandbox Code Playgroud)

Fiddler有以下输出:

Result Protocol  Host           URL
200    HTTP      CONNECT        mysite.com:443
302    HTTPS     mysite.com     /auth
401    HTTP      mysite.com     /auth
Run Code Online (Sandbox Code Playgroud)

这就是我正在做的事情:

// to ignore SSL certificate errors
public bool AcceptAllCertifications(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certification, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors)
{
     return true;
}
Run Code Online (Sandbox Code Playgroud)
try
{   
    // request
    Uri uri = new Uri("https://mysite.com/auth");
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri) as HttpWebRequest;
    request.Accept = "application/xml";

    // authentication
    string user = "user";
    string pwd = "secret";   
    string auth = "Basic …
Run Code Online (Sandbox Code Playgroud)

.net c# authentication ssl httpwebrequest

5
推荐指数
1
解决办法
4万
查看次数

在迁移中更改自动增量值(PostgreSQL和SQLite3)

我有一个在Heroku上托管的项目,并希望更改表的自动增量起始值.我在本地使用SQLite3而Heroku使用PostgreSQL这是我在迁移中所拥有的:

class CreateMytable < ActiveRecord::Migration

  def self.up
    create_table :mytable do |t|
      t.text :mytext
    end

    case ActiveRecord::Base.connection.adapter_name 
      when 'PostgreSQL'
        execute 'ALTER SEQUENCE mytable_id_seq RESTART WITH 1000;'
      when 'SQLite'
        execute 'update sqlite_sequence set seq = 1000 where name = "mytable";'
      else
    end 
  end

  def self.down
    drop_table :mytable
  end
end
Run Code Online (Sandbox Code Playgroud)

本地迁移运行但SQLite似乎只是忽略了更改,但它适用于Heroku.我究竟做错了什么?

sql sqlite postgresql auto-increment ruby-on-rails-3

5
推荐指数
1
解决办法
4063
查看次数

在 pry 中导航多行命令历史记录的奇怪错误

当我在 pry 或常规 irb 控制台中输入一个对于控制台宽度来说太长的字符串时,它会像往常一样包装,请参见下文(在 OS X 10.8.2 terminal.app 中使用 pry):

撬 - 输入确定

但是,当我尝试使用向上箭头重放命令时,我得到了这个: 在此处输入图片说明 Pry 切断一些命令并重复提示。另一方面,Irb 表现得很好,甚至在需要时向上滚动缓冲区: irb - 好的重播

ruby pry

5
推荐指数
1
解决办法
477
查看次数

4
推荐指数
2
解决办法
108
查看次数

Ruby-on-Rails:设计自定义故障应用程序问题

我正在尝试设置Devise将401返回到未经授权的API请求而不是重定向,但我遇到了一块巨石.这就是我如何重写它的自定义失败行为:

class CustomFailure < Devise::FailureApp
    include ActionController::Head
    include ActionController::MimeResponds

    def respond
        respond_to do |format|
            format.html {
                super
            }
            format.any { head :status => 401}
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

但是,我收到此错误:

undefined local variable or method `lookup_context' for #<CustomFailure:0x000001031f6220>
Run Code Online (Sandbox Code Playgroud)

它指向了这respond_to do |format|条线

我究竟做错了什么?

ruby ruby-on-rails devise

3
推荐指数
1
解决办法
2440
查看次数

目标C版本的unix"finger"命令

我正在尝试检查自上次登录我的Cocoa应用程序以来的时间.我想这样做而不必做这样的事情:

NSTask *task;
task = [[NSTask alloc] init];
[task setLaunchPath: @"/usr/bin/finger"];

NSArray *arguments;
arguments = [NSArray arrayWithObject: NSUserName()];
[task setArguments: arguments];

NSPipe *pipe;
pipe = [NSPipe pipe];
[task setStandardOutput: pipe];

NSFileHandle *file;
file = [pipe fileHandleForReading];

[task launch];

NSData *data;
data = [file readDataToEndOfFile];

NSString *stringData = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
NSLog (@"%@", stringData);
Run Code Online (Sandbox Code Playgroud)

例如,Unix whoami命令具有NSUserNameObjective C等效项.

unix login objective-c

2
推荐指数
1
解决办法
395
查看次数

如何阻止Savon为soap.body添加前缀

这就是我创建一个客户端的方式:

@client = Savon::Client.new do
  wsdl.document = my_document
  wsdl.endpoint = my_endpoint
end
Run Code Online (Sandbox Code Playgroud)

这就是我得到回应的方式:

@response = @client.request :the_action do
  soap.body = xml
  soap.body = {"applicationId" => my_application_id }
end
Run Code Online (Sandbox Code Playgroud)

但是,这会生成以下xml:

"<ins5:applicationId>XXXXXXXXXXXXXX</ins5:applicationId>"
Run Code Online (Sandbox Code Playgroud)

由于前缀,我的soap服务错误.如果我这样做,它的工作原理:

@response = @client.request :the_action do
  soap.body =  "<applicationId>#{my_application_id}</applicationId>"
end
Run Code Online (Sandbox Code Playgroud)

然而,由于各种原因,这是一种痛苦.有没有办法阻止savon附加前缀?

使用savon 0.9.6.

ruby soap savon ruby-on-rails-3

2
推荐指数
1
解决办法
4269
查看次数