def index
obclass = GgClasslist.new
obnews = GgNews.new
obask = GgNewsAsk.new
@class = obclass.all
@ask_list = obask.get_ask_list 10
@day_count = obnews.day_count
@new = obnews.get_news_list false, false, "1=1", "n.id desc", "30", "0"
end
然后编辑器给了这个提示?
Controller action should call one model method other than an initial find or new less... (Ctrl+F1) This inspection warns if a controller action contains more than one model method call, after the initial .find or .new. It’s recommended that you implement all business logic inside the model class, and use a single method to access it. Inspired by "Ruby on Rails Code Quality Checklist" 不知道哪里需要改进?
def index
obnews = GgNews.new
obask = GgNewsAsk.new
@class = GgClasslist.all
@ask_list = obask.get_ask_list 10
@day_count = obnews.day_count
@new = obnews.get_news_list false, false, "1=1", "n.id desc", "30", "0"
end
我改进了,不过其它还要改么?编辑器一直有提示~但不是错误·
供楼主参考。。。
看你的上下文,「栏目」用 column
或者 section
更合适:
def index
@columns = GgClasslist.all
@ask_lists = GgNewsAsk.get_ask_list(10)
@day_count = GgNews.day_count
@news = GgNews.get_news_list(false, false, "1=1", "n.id desc", "30", "0" )
end
class GgNewsAsk < ActiveRecord::Base
def self.get_ask_list(limit = 10)
#do something
end
end
def index
@class = GgClasslist.all
@ask_list = GgNewsAsk.new.get_ask_list(10)
@day_count = GgNews.new.day_count
@new = GgNews.new.get_news_list(false, false, "1=1", "n.id desc", "30", "0")
end
我改成这样了,工具现在不提示了~ 写法是否符合?
一句话总结:亲,Rails 代码可不是这么写的。
如果只是完成数据库调用,那么,不用 new,只要使用数据库表对应的 model,再调用 Model 里的 public method,就可以了。具体参考 http://guides.rubyonrails.org/v3.2.13/getting_started.html 先走一遍“如何写 Rails 代码”。
java 是调用实例,才做事。Rails 不完全是的,可以这么来理解:
Rails 中的 Model 代表数据库表和它里面的全体数据,Model.new 代表一条记录。因为字段和属性绑定,所以,这个 new 之后的 Model instance,是要写到数据库的。
所以,该 Model 做的事情,比如 get_list,count 由 Model 来做,@new(不要用这个名字)赋值后 save,保存到数据库。
静态方法是使用公共内存空间的,就是说所有对象都可以直接引用,不需要创建对象再使用该方法。静态方法最大的特点就是,不用生成类的实例对象,直接可以用。 Java 中的静态方法中,在方法声明时前面要加 static 修饰符。 静态方法中不能直接调用实例方法.!! 静态方法和实例方法的区别主要体现在两个方面:
#18 楼 @dume2007 GgNews.find(....) 试试。。。而且你 Model 名称不该为复数。 具体的查询参考:http://guides.rubyonrails.org/v3.2.13/active_record_querying.html