- 浏览: 219835 次
- 性别:
- 来自: 山西
最新评论
-
notrace123:
针对多表操作混有读写操作的代码段 可以加事务处理吗?
rails 读写分离
文章列表
FillOptions 和 CascadingSelect 使用时如果传入的参数值是 汉字,则会出现问题,后台无法识别,我们要尽力避免这种情况的发生,解决方式,我还没找到.
有一种情况,是这样的c属于b,b属于a,但是我们有时候想建立c属于a的关系,也就是c.a替代原来的c.b.a,那么可以使用through和has_one的结合使用来实现这个.
例如
1)
class A
has_one :b
end
class B
belongs_to :a
has_one :c
end
class C
belongs_to :b
has_one :a, :through => b
end
注意: belongs_to 不能和through一起使用,至于原因,我看了rails官方解释,但是看不懂.
2)
还有一些其他的解决方式, ...
1: 其实prototype和jquery就是$发生冲突,解决办法很简单,不要用$,用jQuery来代替$
2: 使用jQuery.noConflict()来释放jquery对$变量的控制,这样的jquery将不能使用$,其实也可以使用j=jQuery.noConflict(),这样的话j将相当于以前的$.
<script type="text/javascript">
jQuery.noConflict();
</script>
3: 函数jQuery.noConflict("&")必须 ...
rescue_from 异常, :with => :action
eg:
rescue_from Exception, :with => :error
def error
render :file => "novel/infos/error", :layout => "novel"
end
当发生了指定的异常时,就会显示特定的页面,这个通常放到application_controller中
启动项目:
ruby script/server -e development(默认)
ruby script/server -e test
ruby script/server -e production
在编写ruby代码时,如果要引用另一个文件中的类和模块,需要使用require关键字,但是当我们在rails中引用另一个文件中的类和模块时,rai ...
1: 复制以下配置邮件的代码到environment.rb文件下面或者其他的环境文件中
ActionMailer::Base.default_charset = "utf-8" # 设置发送邮件的内容的编码类型
ActionMailer::Base.default_content_type = "text/html" # 发送邮件的默认内 ...
开发环境下实现rails的读写分离:
首先: 一定要保证主从数据库的完全相同,这是以下的前提。
实现功能: select操作在slave数据库操作,而非select(insert、update、delete)操作在master数据库操作。
1: 安装masochism和master_slave_adapter ...
attr_protected、 attr_accessible 解析
1:为什么使用这两个方法:
我们提交一个表单,该表单中有一些不可以让用户提交的字段,例如‘激活(active)’字段、‘用户权限(purview)’字段,但是怀有恶意的用户可以模拟表单提交这些属性,可以随意的给自己权限,而我们控制器中的取得属性的代码是Account.new(params[:account]),这句代码,会接受所有的用户模拟提交的account下的信息,此时我们不希望发生的事情发生了,我们要防止这种情况的发生,可以使用以上两个方法。
2:方法解释:
attr_protected: 指定 ...
filter_parameter_logging : 该方法指定某些字段的内容不能显示在log日志中。
举例:
filter_parameter_logging :password, :password_confirmation
helper_method : 可以指定控制器中的某些方法为helper方法,这些方法可以直接在视图中使用。
举例:
helper_method :current_user
def current_user=(current_user)
session[:user_id] = current_user.id
@current_user = current_user
end
def current_user
@current_user ||= Account.find_by_id(session[:user_id]) if session[:user ...
在使用update的回调方法中,
1)是否遇到过 需要用到更改该对象属性之前的属性值
2)是否遇到过想要只更改某个属性才去触发回调方法
好的,我们来解决这两个功能需求:
1) 无论你使用before_update还是after_update,当你改变了某个属性的值,例如age吧,你在回调方法中self.age 或 age得到的都是更改后的值,无论该回调方法是否可以有效执行,这时我们要取到更改之前age得值得话: 可以 @obj.age_change,这个方法返回得是一个数组,第一个是改变之前得值,第二个是改变之后得值.
2) 我们要实现值更改某个属性的情况下,才去执行 ...
ie下自动下载excel表的解决方式:
1: config.action_controller.use_accept_header = false
用于设置确定response格式的规则。如果该值设为true(默认值),则respond_to方法和Request#format方法会根据Accept Header返回相应格式的response。弱该值设为false则request格式会单独由params[:format]来决定。如果没有format参数,则response的格式会根据request是否是一个Ajax request来决定返回HTML还是Javascript。
2:
b ...
我们有时候会遇到这种情况,如下
info.user.name
info.user.age
我们可以让代码变得更漂亮些或者你想重构的更好些,那么如下:
class Info< ActiveRecord::Base
belongs_to :user
delegate :name, :address :to => :user, :prefix => true
end
<%= @info.user_name %>
<%= @info.user_address %>
prifix 参数: flase(默认),则不加前缀,也就是 info. ...
去掉form_for的报错绑定属性功能,在config的initializers下加入以下代码:
ActionView::Base.field_error_proc = Proc.new{|html_tag, instance|
#"<li class=\"fieldWithErrors\">#{html_tag}</li>"
html_tag
}
http://ruby-toolbox.com/
http://cn.asciicasts.com/
http://railscasts.com/
http://rubygems.org/
https://github.com/
http://rdoc.info/ 插件文档
http://api.rubyonrails.org/ rails文档
http://ruby-doc.org/ruby-1.9/index.html ruby文档
http://www.kuqin.com/rubycndocument/ma ...