小编the*_*gah的帖子

Rails:助手和模型 - 组织代码的位置

越来越多的我将我的所有代码都放在关于MVC的模型和帮助器中.

但是,有时候我不确定在哪里组织代码.它应该进入模型还是应该进入帮助者.每个都有什么好处.是一个更快还是相同.我听说过所有模型都被缓存了,所以看起来像是放置我的大部分代码的更好的地方.

例如,这里有一个在模型或帮助器中工作的场景:

 def status
  if self.purchased
   "Purchased"
  elsif self.confirmed
   "Confirmed"
  elsif self.reserved
   "Reserved"
  else
   "Pending"
  end
Run Code Online (Sandbox Code Playgroud)

结束

我不需要像在数据库中那样保存此状态,因为有已购买,已确认和已保留的布尔字段.那么为什么要把它放在一个模型中,或者为什么要把它放到帮助器里呢?

因此,我不确定将代码放入模型或帮助程序中获得的最佳实践或好处,如果它可以同时存在.

ruby model-view-controller ruby-on-rails organization

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

是否可以包含css文件的文件夹?

我有大约100个样式表,它们将相同的样式应用于一个文档,就像zen css页面一样,我可以逐个列出这些文件,但它们都在同一个文件夹中,所以看起来有一种更简单的方法.那就是...?

我正在使用ruby,但我宁愿只列出一个文件夹.

<% Highlight.all.each do |hl| %>
    <%= stylesheet_link_tag "css/#{hl.name}" %>
<% end %> 
Run Code Online (Sandbox Code Playgroud)

看着禅园这是他们的来源


在发布一些答案后添加

这是一个文件

<style type="text/css" title="currentStyle" media="screen">
@import "/205/205.css";</style>
Run Code Online (Sandbox Code Playgroud)

这是第二种CSS风格

<style type="text/css" title="currentStyle" media="screen">
    @import "/001/001.css";
</style>
Run Code Online (Sandbox Code Playgroud)

什么是@import?这意味着什么?

css

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

扩展ActiveRecord - 发送,扩展有什么区别?

我正在为一个拥有200多个模块的Rails应用程序开发ApplicationModel.该应用程序是如此之大,以至于当我们rails s需要40秒才能加载我们的应用程序.因此,在开发过程中,我们经常更改模块,并查看我们重新加载应用程序所需的更改.

所以我创建了一个ApplicationModel并将所有初始化程序移动到该模型中,以便在开发中重新加载更改,我们不必再次重新启动服务器,每天节省大量时间.

我使ApplicationModel继承ActiveRecord::Base并使其成为一个抽象类.所有其他模型都继承自此模型.所以现在我们可以把我们的初始化器扩展到ActiveRecord这个模型.

由于我工作的一个项目,其他人开始我不知道延长这两种方式之间的区别ActiveRecord,并想知道它们之间的差异.

ActiveRecord::Base.send(:include, someModule)
ActiveRecord::Base.extend(ClassMethods)
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails

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

Rails发现:条件

我有一个Reservation模型,我正在寻找三个领域.在container_id必须始终self.id但是confirmedauto_confirmed只有一个需要为真.我有以下但它没有执行我需要的:

Reservation.find(:all, 
:conditions => ['container_id = ? AND confirmed = ? OR auto_confirm = ?', 
self.id, true, true,])
Run Code Online (Sandbox Code Playgroud)

我应该怎么改变这个?

mysql logic ruby-on-rails find conditional-statements

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

如何使用键盘箭头键分别向左/右移动div 100px

我有一个id为div的div,bottom_arrow我想用左/右键盘左右移动div左右100px.我怎样才能做到这一点?

javascript jquery

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

delayed_job,跟踪对象的进度

我正在努力获得进度条,delayed job但我不知道如何检查对象的状态.

我有一个被调用的对象Scrape,它会执行一些feed解析或其他任何操作,因此大约需要30秒.我似乎无法做的是找到一种方法来访问该对象,该对象具有进度整数属性,该属性跟踪解析,我将调用该解析以在正面创建一个简单的%/ css/div/ajax更新程序小部件.

我可以使用,object_id因为在id完成/保存过程之前,对象没有.如果是这样的话?

如何在我的对象上访问此进度属性是否已延迟.或者还有另一种方法吗?

ruby-on-rails delayed-job progress-bar

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

ruby,rails,railscasts例子我搞砸了

如果您在嵌套表单上看到railscast,则这是动态创建链接的帮助方法.但是,在我升级到ruby 1.9.2和rails 3后,这不起作用,我现在知道为什么.

    def link_to_add_fields(name, f, association)
  new_object = f.object.class.reflect_on_association(association).klass.new
  fields = f.fields_for(association, new_object, :child_index => "new_#{association}") do |builder|
    render(association.to_s.singularize + "_fields", :f => builder)
  end
  link_to_function(name, h("add_fields(this, \"#{association}\", \"#{escape_javascript(fields)}\")"))
end
Run Code Online (Sandbox Code Playgroud)

这是javascript

 function add_fields(link, association, content) {
 var new_id = new Date().getTime();
 var regexp = new RegExp("new_" + association, "g")
 $(link).up().insert({
  before: content.replace(regexp, new_id)
 });
Run Code Online (Sandbox Code Playgroud)

}

当我查看源代码时,链接的呈现方式如下:

<p><a href="#" onclick="add_fields(this, &quot;dimensions&quot;, &quot;&quot;); return false;">Add Dimension</a></p>
Run Code Online (Sandbox Code Playgroud)

因此&quot;&quot;,构建新模板的信息不正确,而且字段的字符串是如何设置的.如fields= f.fields_for

ruby-on-rails

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

Ruby:将可选对象传递给方法

Class TShirt

def size(suggested_size)
  if suggested_size == nil
   size = "please choose a size"
  else
   size = suggested_size
  end
end
end 

tshirt = TShirt.new
tshirt.size("M")

== "M"

tshirt = TShirt.new
tshirt.size(nil)

== "please choose a size"
Run Code Online (Sandbox Code Playgroud)

在方法中使用可选对象的更好方法是什么?特效?

ruby

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

AS3中的无效点是什么?

这里有一个简单的问题,当void在AS3中跟随一个函数时它在做什么?

public function sayGoodbye():void { trace("Goodbye from MySubClass");}
Run Code Online (Sandbox Code Playgroud)

actionscript-3

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

Ruby的@@ double_at_variable有什么意义?

我很少使用@@double_at_variable,甚至不知道该怎么称呼它.当我深入研究gems和os项目时,我经常遇到这个变量,它会抛出一个循环.

其他ruby变量无法实现什么,以及Rails等项目中的应用程序通常是什么?

ruby variables ruby-on-rails

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

jQuery ajax发布到rails app中的错误网址

$.ajax({
 type: "POST",
 url: "analytics/test",
 data: 'correct=' + correct_or_incorrect + '&id=' + correctCharacter[3] + "'"
 });
Run Code Online (Sandbox Code Playgroud)

我正在使用它将一些信息发布到rails应用程序.问题是它只是发布到应用程序控制器.

我怎样才能得到它以便网址正好 :controller => 'analytics', :action => 'test'

ajax jquery ruby-on-rails

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

在Ruby中将一个字符串设置为另一个字符串时的疯狂行为(至少对我而言)

作为一个新手,我可能错过了一些关于Ruby的东西,但对于我的生活,我不明白这个结果.所以我有这个简单的功能:

def crazyfunc(s)
  s.gsub!('a', 'b')
  #return has not purpose here
end
Run Code Online (Sandbox Code Playgroud)

现在我有这么简单的几套.

s1 = 'abc'
s2 = s1
s2 = crazyfunc(str2)

puts s1

=> bbc
Run Code Online (Sandbox Code Playgroud)

为什么世界上的s1受到crazyfunc的影响?所以这样做:

def crazyfunc(s)
  return s.gsub('a', 'b')
end
Run Code Online (Sandbox Code Playgroud)

不会改变str1,所以我认为它与inplace gsub正在做的事情有关.但我仍然没有得到为什么str1会被改变的逻辑.

ruby

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

谷歌托管了jQuery列表

哪里有一个很好的链接到谷歌托管的jQuery lib的列表?

我正在使用以下脚本,它很有用:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

我目前正试图让滑块运行,但它不起作用所以我正在寻找谷歌托管的jQuery库,插件等列表......

jquery

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