浏览 2950 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-02-01
require 'ostruct' def index @search = OpenStruct.new(params[:search]) end # in view <% form_for :search, :url => {:action => "index"}, :html => {:method => :get} do |f| %> <%= f.text_field :quick %> <%= f.submit "Search" %> <% end %> 简单, 喜欢 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-02-02
刚好注意到这个OpenStruct,就看到这个帖子,这个挺酷的
|
|
返回顶楼 | |
发表时间:2010-02-02
form_for必须要一个class实例的参数,通过这个解决了,不错不错。
|
|
返回顶楼 | |
发表时间:2010-02-02
用OpenStruct最大的问题是id方法不会代理到params[:id]上。
|
|
返回顶楼 | |
发表时间:2010-02-05
最后修改:2010-02-05
liusong1111 写道 用OpenStruct最大的问题是id方法不会代理到params[:id]上。
可以把object默认id undef掉的.. require 'ostruct' class OS < OpenStruct;undef id;end o = OpenStruct.new(:id => 11) puts o.id#object_id oo = OS.new(:id => 12) puts oo.id#real id |
|
返回顶楼 | |
发表时间:2010-02-05
引用 def index
@search = OpenStruct.new(params[:search]) end 还可以在model里用,让model实例继承OpenStruct而不是ActiveRecord::Base.. class Post < OpenStruct undef id #... end |
|
返回顶楼 | |
发表时间:2010-02-12
http://github.com/binarylogic/searchlogic
|
|
返回顶楼 | |