打印

我想写个类,这个类能在整个工程中调用.请问!!

我想写个类,这个类能在整个工程中调用.请问!!

这个类写在哪个文件,怎么掉用?? 给个简单的例子!! 谢谢!

TOP

方法很多,因为是动态语言嘛
比如类文件放到lib里面去,叫demo.rb
在config/environment.rb最后添加一行
require 'demo'
本帖最近评分记录
  • wscc111 R币 +2 谢谢指导! 2008-3-19 12:21

TOP

放置的位置没有特定要求,我一般习惯放置在 /app/model/
下,在需要引用该类的地方 使用 require "demo" 即可
本帖最近评分记录
  • wscc111 R币 +2 谢谢指导!^!^ 2008-3-19 12:22

TOP

引用:
原帖由 lgn21st 于 2008-3-19 10:56 发表
方法很多,因为是动态语言嘛
比如类文件放到lib里面去,叫demo.rb
在config/environment.rb最后添加一行
require 'demo'
在application.rb创建有什么坏处吗?

TOP

引用:
原帖由 lgn21st 于 2008-3-19 10:56 发表
方法很多,因为是动态语言嘛
比如类文件放到lib里面去,叫demo.rb
在config/environment.rb最后添加一行
require 'demo'
demo.rb
 class Demo
   def show
    return "show!!"
   end 
 end
a_controller.rb
 class AController < ApplicationController
  require 'demo'
  def index
   puts Demo.show
  end
 end
这么掉用可以不??
还有我想 ① 定义一写常量,应该定义在什么地方,怎样定义,怎么掉用
      ② 我想替换字符串里的某些字符 类似 replace功能

怎么搞??

TOP

要这样调用,你需要这样定义:

class Demo
  def Demo.show
    "show!!"
  end
end


定义常量,看需求,谁的常量,作什么用的
比如有个常量跟一个model有关系,这么定义

# 比如model类Demo有个常量叫FooBar
class Demo < ActiveRecord::Base
  FooBar = 'foobar'
end
# 这样调用
Demo::FooBar

# 定义在environment.rb中的全局变量
$FooBar = 'foobar'
# 在rails中直接调用
$FooBar


你的第二个问题也许要看情况了

另,在application.rb创建没有什么坏处,但是缺点是只能在Controller和View中使用,如果你的Model里面也想用到这个方法,就不方便了.
一般定义为全局的HelperMethod,都最好不要放在"M","C"中

[ 本帖最后由 lgn21st 于 2008-3-19 13:19 编辑 ]
本帖最近评分记录
  • wscc111 R币 +2 ~~懂了!! 2008-3-19 14:12

TOP

帮忙解决替换

msg_controller.rb 
def message(arr=[])
  for i in 0..arr.length-2
   arr[0] = arr[0].sub(/<i>/,arr[i+1])
  end
  return arr[0]
end
这个i有点问题
ShowMsg::MSG01 = "error, <0>should small than <1> "
def list
  arr1=[ShowMsg::MSG01,"1","2"]
  p message(arr1)
end
按上的写法结果是: error, <0>should small than <1>
我想要的结果是:  error,1 should small than 2  想做成一个函数,方便以后用(可以写多个<0>,<1>,<3>...)
但是message方法中的sub(/<i>/不能随i的变化而变化,怎么把这个i变成数字啊!
怎么搞啊,才能达到我想要的结果??

TOP

改好了

引用:
原帖由 wscc111 于 2008-3-19 16:53 发表
msg_controller.rb 
def message(arr=[])
  for i in 0..arr.length-2
   arr[0] = arr[0].sub(/i/,arr)
  end
  return arr[0]
end
这个i有点问题
ShowMsg::MSG01 = "error, shoul ...
for i in 0..arr.length-2
   arr[0] = arr[0].sub(/<#{i}>/,arr)
  end

TOP

2008-11-24 00:19 Crawled by CCBot/1.0 (+http://www.commoncrawl.org/bot.html) @38.103.63.61