相关疑难解决方法(0)

如何在rails中生成名称空间内的控制器

admin在控制器中有命名空间,我想在admin文件夹内生成一个控制器.如何使用Rails命令执行此操作?

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

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

.vs ::(点与双冒号)用于调用方法

可能重复:
Ruby中的含义是什么意思?

我正在从Ruby的Poignant Guide中学习Ruby ,在一些代码示例中,我遇到了似乎用于相同目的的双冒号和点的使用:

File::open( 'idea-' + idea_name + '.txt', 'w' ) do |f|
   f << idea
end
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,双冒号用于访问类的open方法File.但是,后来我遇到了使用点来实现相同目的的代码:

require 'wordlist'
# Print each idea out with the words fixed
Dir['idea-*.txt'].each do |file_name|
   idea = File.read( file_name )
   code_words.each do |real, code| 
     idea.gsub!( code, real )
   end
puts idea
end 
Run Code Online (Sandbox Code Playgroud)

这次,使用点来访问类的read方法File.有什么区别:

File.read()
Run Code Online (Sandbox Code Playgroud)

File::open()
Run Code Online (Sandbox Code Playgroud)

ruby

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

20
推荐指数
3
解决办法
7623
查看次数

ruby on rails,冒号后面或前面的变量

我是ruby的新手,并且两者兼而有之.我认为Rails是最好的API之一,而且ruby非常独特,似乎ruby可以巧妙地做"假设"来帮助开发人员.但我不太确定会延伸到什么程度.

我的问题是变量中的冒号.
到目前为止我所理解的是: ruby中的变量,就是说这个变量将无法改变,这与其他语言中的常量相似.我对么??

然后我的困惑是,有时我看到变量前面的冒号,像这样

 Rails.application.config.session_store :cookie_store, 
      key: '_blog_session'
  <%= link_to "Delete", article, confirm: "Are you sure?", 
      method: :delete %>
Run Code Online (Sandbox Code Playgroud)

这两个关键:方法:已结肠front.What确实,这代表什么?而且

Blog::Application.routes.draw.do
  root :to => "articles#index"
end
Run Code Online (Sandbox Code Playgroud)

变量之间有双冒号?现在我猜测Blog:是一个变量,而且:应用程序是不变的.我怀疑它是什么,因为它没有意义.请赐教?

谢谢

ruby variables ruby-on-rails constants colon

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

:: MyClass Ruby作用域操作符有什么作用?

什么是::MyClass/MyModule范围运营商在Ruby中做的,什么是它的目的是什么?

ruby

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

::做什么?

我有一些我正在修改的继承代码.但是,我看到一些奇怪的东西(对我来说).

我看到一些像这样的代码:

::User.find_by_email(params[:user][:email]).update_attributes(:mag => 1)
Run Code Online (Sandbox Code Playgroud)

我从未见过这样的东西(我是Ruby on Rails的新手).这是做什么的,为什么我的User.find_by_email(params[:user][:email]).update_attributes(:mag => 1)工作没有?错误说明了User常量.

如果有帮助,我正在使用Rails 2.3.5.

ruby-on-rails

8
推荐指数
2
解决办法
1234
查看次数

Rails迁移中的默认值的常量

我刚刚开始使用Rails,并决定制作一个小应用程序来学习实用的东西.

我有一个用户类,它有一个用户组整数字段.我想使用常量添加到迁移a:默认值.

在我的用户模型中,我使用常量定义了不同的组,以便稍后我可以轻松地检查"admin?" 等等

t.integer :user_group, :default => USER
Run Code Online (Sandbox Code Playgroud)

我在db:migrate上收到以下错误

耙子流产了!期望[...]/app/models/user.rb定义USER

但是在用户模型中我有这个:

ADMIN = 1
USER = 2
Run Code Online (Sandbox Code Playgroud)

我有什么想法我做错了吗?

ruby-on-rails

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

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

对Ruby方法使用双冒号(双列或::)语法的习惯用法

我对Ruby比较陌生,并且发现以下几对示例同样有效:

File.included_modules
File::included_modules

File.stat('mbox')         # Returns a '#<File::Stat..>' object
File::stat('mbox')

File.new("foo.txt", "w")
File::new("foo.txt", "w")

"asdf".size               # An instance method
"asdf"::size

2 + 3
2::send(:+, 3)            # An extreme example
Run Code Online (Sandbox Code Playgroud)

File::new特别是我经常遇到的事情.

我的问题:它会不地道,我以避免以往任何时候都使用::运算符资格的任何东西,但类,模块和常量,取而代之的名字,始终使用点语法的所有方法(类方法,模块方法和实例方法)?

需要明确的是:在任何情况下我都想使用除dot语法以外的任何方法来引用方法(无论是在代码中还是在文档中)?


消息来源咨询:

ruby

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

Rails迁移不能在heroku上运行,Model类报告为未初始化的常量

我正在尝试在heroku上运行迁移,我似乎无法找到为什么我的模型类无法识别的问题.

这是我的迁移:

class AddTestToGoals < ActiveRecord::Migration
  def change
    add_column :goals, :test, :integer, default: 0, null: false
    Goal.reset_column_information
    Goal.all.each { |g| g.update_attribute :test, Goal::PASS }
  end
end
Run Code Online (Sandbox Code Playgroud)

使用它运行它

heroku run rake db:migrate
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

uninitialized constant AddTestToGoals::Goal
Run Code Online (Sandbox Code Playgroud)

谁知道问题是什么?

编辑:错过键入之前,它是无法识别的模型,而不是其中的常量.

半个办公室:

使用此(我在这里找到:http://visibletrap.blogspot.co.il/2011/10/heroku-access-railss-model-in-migration.html)

class AddTestToGoals < ActiveRecord::Migration
  class Goal < ActiveRecord::Base; end
  def change
     add_column :goals, :test, :integer, default: 0, null: false
     Goal.reset_column_information
     Goal.all.each { |g| g.update_attribute :test, Goal::PASS }
  end
end
Run Code Online (Sandbox Code Playgroud)

heroku不抱怨不知道什么目标解决了问题的一半.但是,目标:: PASS无法识别.

migration ruby-on-rails heroku

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