小编Pet*_*ong的帖子

在Rails 3中为nav添加"当前"类的最佳方法

我在导航菜单中有一些静态页面.我想在当前显示的项目中添加类似"当前"的类.

我这样做的方法是添加大量的辅助方法(每个项目一个)来检查控制器和操作.

def current_root_class
  'class="current"' if controller_name == "homepage" && action_name == "index" 
end

<ul>
  <li <%= current_root_class %>><%= link_to "Home", root_path %>
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢??我目前的方式是如此愚蠢......

navigation ruby-on-rails-3

110
推荐指数
6
解决办法
6万
查看次数

MongoDB与MySQL

我曾经用MySQL构建Ruby on Rails应用程序.

MongoDB目前越来越有名,我现在开始试一试.

问题是,我不知道MongoDB如何工作的基础理论(如果重要的话,我正在使用mongoid gem)

所以我想对使用MySQL + ActiveRecord和mongoid gem生成的模型之间的性能进行比较,是否有人可以帮我搞清楚?

mysql comparison activerecord mongodb ruby-on-rails-3

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

Merge two ActiveRecord arrays and order by created_at

books = Book.find(:all)
articles = Articles.find(:all)
Run Code Online (Sandbox Code Playgroud)

通过阅读http://guides.rubyonrails.org/layouts_and_rendering.html, 我知道我可以做类似的事情:

<%= render :partial => [customer1, employee1, customer2, employee2] %>
Run Code Online (Sandbox Code Playgroud)

并且它将适当地使用_customer和_employee部分.

所以我想做那样的事情:

materials = books + articles
materials.sort_by_created_at
Run Code Online (Sandbox Code Playgroud)

并在视图中:

<%= render :partial => materials %>
Run Code Online (Sandbox Code Playgroud)

如何合并和排序两个ActiveRecord阵列???感谢您的帮助!

arrays sorting merge activerecord ruby-on-rails

32
推荐指数
2
解决办法
3万
查看次数

直接下载xls文件而不通过Spreadsheet gem将其写入目录

我正在使用此Spreadsheet gem导出xls文件.

我的控制器中有以下代码:

def export
  @data = Data.all

  book = Spreadsheet::Workbook.new
  sheet = book.create_worksheet :name => "data"

  contruct_body(sheet, @data)

  book.write "data.xls"
end
Run Code Online (Sandbox Code Playgroud)

通过这种方式,我可以填写数据并将其保存在根目录中.

但我想下载它而不是保存它.我怎么能修改代码,以便用户提示选择他的本地目录来保存文件?(如果不在服务器端保存副本,则更好)

请帮忙!

xls ruby-on-rails export-to-excel ruby-on-rails-3

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

你如何在Ruby中初始化变量?

以下几种变量初始化方法之间是否存在差异?

@var ||= []
@var = [] if @var.nil?
@var = @var || []
Run Code Online (Sandbox Code Playgroud)

请分享初始化变量的方式,并说明利弊.

ruby variables initialization memoization

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

Rails上的OAuth(Twitter,Facebook,LinkedIn等)

我想连接到那些提供OAuth API的应用程序(例如fb,twitter).

是否有一种相对简单的方法来集成这些API?

我已经成功使用了可以连接到LinkedIn OAuth API的linkedin gem.但我真的不想安装gem来处理单个应用程序,其中这些应用程序提供了类似的OAuth API.

api twitter facebook ruby-on-rails oauth

10
推荐指数
3
解决办法
7174
查看次数

xcode上未声明的标识符__bridge

我试图将CFUUIDRef转换为NSString*.

之前,我使用了以下代码,并且工作正常.

CFStringRef str = CFUUIDCreateString(NULL, _uuid); # _uuid is of type CFUUIDRef
return (__bridge NSString *) str;
Run Code Online (Sandbox Code Playgroud)

但是,在最近更新Xcode(或其他我没注意到的事情?)之后,上面的代码给了我错误:

使用未声明的标识符'__bridge'

我做错了什么?我该怎么解决?

===更新===

完整代码:

+ (NSString *)uuidToString:(CFUUIDRef)_uuid {
  CFStringRef str = CFUUIDCreateString(NULL, _uuid); # _uuid is of type CFUUIDRef
  return (__bridge NSString *) str;
}
Run Code Online (Sandbox Code Playgroud)

uuid由以下生成:

uuid = CFUUIDCreate(NULL);
Run Code Online (Sandbox Code Playgroud)

objective-c xcode4

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

单表继承中的counter_cache

我想知道counter_cache是​​否可以在单表继承中工作.

对于这些型号:

class User
  has_many :questions
end

class Question
  belongs_to :user, :counter_cache => true
end

class SimpleQuestion < Question
end
class ComplexQuestion < Question
end
Run Code Online (Sandbox Code Playgroud)

那么下面的计数器会起作用吗?

create_table(:users) do |t|
  t.integer :questions_count
  t.integer :simple_questions_count
  t.integer :complex_questions_count
end
Run Code Online (Sandbox Code Playgroud)
  1. 所有这些都有效
  2. 他们都没有工作
  3. 只有questions_count工作
  4. 只有simple_questions_countcomplex_questions_count

哪一个?我猜第3次,但我还想要4次.如果不是4,我怎么做4工作?

===更新===

这是一个例子:

id, user_id, question_content, type
1, 3, something, SimpleQuestion
2, 3, something, SimpleQuestion
3, 3, something, ComplexQuestion
Run Code Online (Sandbox Code Playgroud)

所以现在我想:

user.questions_count # => 3
user.simple_questions_count # => 2
user.complex_questions_count # => 1
Run Code Online (Sandbox Code Playgroud)

我的问题是,什么是基本行为,:counter_cache => …

ruby-on-rails has-many single-table-inheritance counter-cache ruby-on-rails-3

6
推荐指数
2
解决办法
1274
查看次数

某些类型的css选择器的浏览器兼容性

我想知道是否有哪些浏览器不支持这种选择?

1) .class-1.class-2
2) #id-1.class-2
3) .class-1 > .class-2
4) .class-1 + .class-2
5) .class[foo="bar"]
Run Code Online (Sandbox Code Playgroud)

我没有这么多不同的OS与不同的浏览器...所以不知道在哪里可以找到这些兼容性.所以请帮帮忙!

css cross-browser css-selectors

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

Ruby中的所有内容都可以在Rails中使用吗?

这可能是一个愚蠢的问题,但严重的是Ruby中的所有内容都适用于Rails?

我的意思是rails没有覆盖任何东西,但只是为ruby添加了新东西,对吧?

(对不起,愚蠢的问题,我刚刚得知轨约4个月,没有在Ruby中还没有任何经验(除轨道; d)).

ruby ruby-on-rails

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

Rails Devise gem中的密码加密问题

我现在更改为使用Gem Devise进行用户身份验证.但我不知道如何匹配加密!

我知道我们可以编写一个新的加密器并将其分配给初始化器,但重点是加密器只接受4个参数(密码,延伸,盐,胡椒).但就我而言,我确实在加密中包含了用户的电子邮件和自定义的盐.

是否可以将用户的电子邮件和自定义盐传递给加密器?

PS.我正在使用database_authenticatable

gem ruby-on-rails devise

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

rails 3 中 XML 构建器的布局

我想为 XML 响应创建通用布局文件。例如,我想将 RSS 的那些通用部分包装在布局中,并将内容生成在相应的视图文件中。

例如,

# in layout/rss.xml.builder
xml.instruct!
...... # other general stuff for RSS

  yield

# in items/show.xml.builder
xml.item ......
Run Code Online (Sandbox Code Playgroud)

因此,项目显示视图无需担心 RSS 包装。

然而,产量不起作用,只呈现布局,但视图没有返回任何内容。

请帮忙。

layout yield ruby-on-rails xml-builder

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

在rails中生成XML

我创建了一个具有动作的控制器:

def gen_books_xml
  @books = Book.find(:all, :conditions => {:owner_id => 1})
  respond_to do |format|
    format.xml { render :xml => @books.to_xml(:root => "Books", :skip_types=>true) }
  end
end
Run Code Online (Sandbox Code Playgroud)

如何在Book模型sa中实现to_xml方法,它可以生成以下格式?

<?xml version="1.0" encoding="UTF-8"?>
<Books>
  <Owner>1</Owner>
  <Book><title>some title</title></Book>
  <Book><title>some title</title></Book>
  <Book><title>some title</title></Book>
  ...
</Books>
Run Code Online (Sandbox Code Playgroud)

其中只有1个Owner元素和许多Book元素

我只能输出Book元素,但不能在同一级别的Books中输出一个Owner.请帮忙!!!

xml ruby-on-rails

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