小编Zin*_*inc的帖子

如何使用Ruby on Rails 3创建和使用模块?

我正在使用Ruby on Rails 3,我想在模块中移动一些自定义和共享代码.

  1. 我应该用什么语法来编写模块代码?
  2. 在我的应用程序的哪个文件夹中,我必须放置模块文件?
  3. 我如何将该模块包含在一个或多个控制器类中?
  4. 如果有的话,我还需要在我的应用程序中的任何位置使用自定义模块吗?
  5. 如何从我的应用程序中调用模块中的方法?

提前致谢.

module ruby-on-rails-3

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

何时使用Helpers vs Model

我是Rails的新手,只是想知道何时将代码放入Helper而不是将代码放入模型中.

有一个"经验法则"可以这么说吗?

ruby-on-rails ruby-on-rails-3

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

捆绑安装到开发

出于某种原因,当我运行bundle install它时,安装到生产:

Your bundle is complete! It was installed into ./RAILS_ENV=production

Arrrghh,我该如何切换回开发?

笔记:

  • 我没有修改任何环境文件
  • 当我Rails.env从控制台运行时,我得到了"development"

宝石文件:

source 'http://rubygems.org'

gem 'rails', '3.0.3'
gem 'sqlite3-ruby', '1.3.2', :require => 'sqlite3'

group :development do
  gem 'rspec-rails'
  gem 'nokogiri'
  gem 'will_paginate'
end

group :test do
  gem 'rspec'
end
Run Code Online (Sandbox Code Playgroud)

另外值得注意的是,它在我的应用程序中创建了一个文件夹,我在这里RAILS_ENV=production发布了一个问题,现在我猜这个问题与这个问题有关.

更新

当我运行时,bundle config我得到以下信息,你可以清楚地看到路径被设置为罪魁祸首!我有什么想法改变这个吗?我尝试重新安装bundler gem但无济于事,也许这是Bundler中的一个bug?

$ bundle config
Settings are listed in order of priority. The top value will be used.

disable_shared_gems
  Set for your local app …
Run Code Online (Sandbox Code Playgroud)

ruby bundler ruby-on-rails-3

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

检查地图中是否第一次迭代的方法

我正在尝试使用map函数向ReactJS中的元素添加一个类,但是仅仅对于循环中的第一个元素,这可能/一种简单的方法吗?

return (
  <div key={itemData.itemCode} className="item active">
    Want to add 'active' class when the first but for the others dont add it
  </div>
)
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

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

Rails runner脚本不起作用

任何想法为什么这不起作用,我得到一个NoMethodError当我尝试运行下面的代码通过rails runner.

也许我正在调用rails runner,对Rails来说不好意思!

文件位置:

/app/scripts/data_import.rb
Run Code Online (Sandbox Code Playgroud)

命令:

rails runner -e development DataImport.say_hi
Run Code Online (Sandbox Code Playgroud)

错误:

undefined method `say_hi' for DataImport:Class (NoMethodError)
Run Code Online (Sandbox Code Playgroud)

码:

class DataImport

  def say_hi
    puts "hi"
  end

end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails ruby-on-rails-3

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

Ruby on Rails中的yield似乎在渲染时增加了额外的空间

布局和产量都有问题.当我按照指南时,我在p标签前有额外的空间.当我用谷歌浏览器检查代码时,我得到了类似的东西:

"
"

身体和p标签之间.我输入与指南相同的代码,但它不起作用,我错过了什么吗?

布局代码:

<html>
  <head>
    <title>Title</title>
  </head>
  <body>
  <%= yield %>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

以及查看代码:

<p>Hello, Rails!</p>
Run Code Online (Sandbox Code Playgroud)

yield ruby-on-rails

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

Rails太多查询?

只是做一些Rails并注意到当使用@products.each do它在单个页面上显示30个产品时,好像在后台有很多查询,请参阅下面的我的控制台输出.这是对的,还是我读错了?

Category Load (0.1ms)  SELECT "categories".* FROM "categories" WHERE ("categories"."name" = 'bras') LIMIT 1
  Product Load (28.0ms)  SELECT "products".* FROM "products" WHERE ("products".category_id = 48)
  Brand Load (0.2ms)  SELECT "brands".* FROM "brands" WHERE ("brands"."id" = 408) LIMIT 1
  Category Load (0.1ms)  SELECT "categories".* FROM "categories" WHERE ("categories"."id" = 48) LIMIT 1
  Merchant Load (0.1ms)  SELECT "merchants".* FROM "merchants" WHERE ("merchants"."id" = 2) LIMIT 1
Rendered products/_product.html.erb (16.9ms)
  CACHE (0.0ms)  SELECT "brands".* FROM "brands" WHERE ("brands"."id" = 408) …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails-3

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