小编hb9*_*922的帖子

rails try方法抛出NoMethodError?

为什么尝试抛出错误?不是打败了整个目的吗?也许只是在控制台?

ruby-1.9.2-p180 :101 > User.first.try(:something)
NoMethodError: undefined method `something' for #<User:0x000001046ad128>
    from /Users/me/.rvm/gems/ruby-1.9.2-p180/gems/activemodel-3.0.10/lib/active_model/attribute_methods.rb:392:in `method_missing'
    from /Users/me/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.0.10/lib/active_record/attribute_methods.rb:46:in `method_missing'
    from (irb):101
    from /Users/me/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.10/lib/rails/commands/console.rb:44:in `start'
    from /Users/me/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.10/lib/rails/commands/console.rb:8:in `start'
    from /Users/me/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.10/lib/rails/commands.rb:23:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'
Run Code Online (Sandbox Code Playgroud)

编辑:

谢谢你们,现在我明白了.

有没有办法在不使用的情况下做我想做的事情respond_to?,这样User.try(:something)返回nil而不是抛出错误?

ruby-on-rails nomethoderror rails-activerecord

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

限制has_many中返回的对象数

如何限制多个关系中返回的行数?例如:

class User < ActiveRecord::Base
  has_many :photos
end
Run Code Online (Sandbox Code Playgroud)

我希望能够做到:

User.includes(:photos => {:limit => 8}).all
Run Code Online (Sandbox Code Playgroud)

这显然不起作用,但具有此功能的东西.我是否需要自己编写SQL?

提前致谢!

编辑:我不想限制关联,只是查询结果.所以用户可能有一千张照片,我只想要返回前三名.

activerecord ruby-on-rails limit has-many

10
推荐指数
2
解决办法
5005
查看次数

我的用户应如何邀请他们的Facebook好友使用我的网络应用?

我们有一个应用程序,用户在小型私人群组中进行互动 我们希望允许我们的用户邀请他们的Facebook好友加入群组.我们之前在朋友的时间线上发布了一个私人链接,但上周Facebook禁用了:https://developers.facebook.com/roadmap/#february-2013

apprequest对话框不起作用,因为它仅限于画布和移动应用程序:

请求仅适用于Desktop Canvas,iOS和Android应用程序.接受Canvas上的请求会将用户引导至发送请求的应用的Canvas页面URL.对于原生移动应用,接受请求会将用户引导至其设备上的应用(如果已安装)或指向适当的位置(Apple App Store或Google Play)以下载应用.

来自:http://developers.facebook.com/docs/reference/dialogs/requests/

我正在考虑使用Facebook Open Graph并创建一个动作并提及标记,但这似乎是一个黑客,我不认为参与会如此高.

您认为最好的方法是什么?

谢谢!

facebook facebook-graph-api

7
推荐指数
1
解决办法
1129
查看次数

我刚刚找到rails Date格式的错误吗?

在试图解析约会时,我已经绞尽脑汁待了好几个小时:

Date.today.to_s
=> "06/07/2011" 

Date.today
=> Tue, 07 Jun 2011 

Date.parse Date.today.to_s
 => Wed, 06 Jul 2011 

Date::DATE_FORMATS[:default]
 => "%m/%d/%Y" 
Run Code Online (Sandbox Code Playgroud)

to_s的默认格式与解析的默认格式不同?他们为什么要这样对我?

使用Rails 3.0.5和Ruby 1.9.2-p180

更新 所以感谢你的回答,我意识到DATE_FORMATS是一个rails事物,而Date.format正在使用ruby库(正确吗?).有没有办法用默认的DATE_FORMAT解析日期/时间而不使用strptime?

format ruby-on-rails date

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

handlebars.js帮助不起作用

我在这里有点失去理智......我有以下代码:

<script id="myTemplate" type="text/x-handlebars-template"> 
  <div>{{post/name}}</div>
  {{#if post/attachments}}  
    <p>
    {{#list post/attachments}}<img src="{{url}}">{{/list}}  
    </p> 
  {{/if}}
</script>
Run Code Online (Sandbox Code Playgroud)

还有一个帮助器,我直接从每个帮助器复制,以确保没有错误.

Handlebars.registerHelper('list', function(context, fn, inverse) {
  var ret = "";

  if(context && context.length > 0) {
    for(var i=0, j=context.length; i<j; i++) {
      ret = ret + fn(context[i]);
    }
  } else {
    ret = inverse(this);
  }
  return ret;
});

window.myTemplate = Handlebars.compile($('#myTemplate').html());
window.myTemplate({post:{name:"Post!", attachments:[{url:"/images/preview.jpg"},{url:"/images/1.jpg"}]
Run Code Online (Sandbox Code Playgroud)

这实际上并没有调用帮助程序,代码最终看起来像这样:

<div></div>
<p>
  <img src>  
</p> 
Run Code Online (Sandbox Code Playgroud)

现在我用每个块做这个,它工作正常,我错过了什么?

javascript helpers mustache

0
推荐指数
1
解决办法
3358
查看次数