如何获取所有'链接'条目,并且将'url'列为空白的条目豁免?我的控制器看起来像这样:取得所有条目在Rails中排除空列的人
def show
@user = User.find_by_username(params[:username])
@links = @user.links.all
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @links }
end
end
在此先感谢!
编辑#1
如果我做的:
@links = @user.all(:conditions => 'url != NULL')
我得到一个错误:
NoMethodError in UsersController#show
undefined method `all' for #<User:0x2254f98>
如果我做的:
@links = @user.links.all(:conditions => 'url != NULL')
I S直到得到所有的环节,即使是那些空的网址栏...
编辑#2
如果我做
@links = User.all(:conditions => 'url != NULL')
我得到
ActiveRecord::StatementInvalid in UsersController#show
SQLite3::SQLException: no such column: url: SELECT * FROM "users" WHERE (url != NULL)
如果我做
@links = Link.all(:conditions => 'url != NULL')
我仍然得到所有的链接,即使那些具有空的url字段...
我想知道如果这是NULL和字段beeing空的区别?
编辑#3
现在我的代码如下所示:
def show
@user = User.find_by_username(params[:username])
@links = @user.links.all(:conditions => "url <> ''")
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @links }
end
end
解决方案
#controller
@links = @user.links.not_null_url
#model
named_scope :not_null_url, :conditions => "url <> ''"
这工作!只要确保访问与链接:
#view
<% @links.each do |link| %>
而不是:
#view
<% @user.links.each do |link| %>
链接是一个属于用户 – Alfred 2010-03-11 20:46:11
的模型好吧,我编辑我的答案基于你:尝试@ user.links.all(:条件=> {:url =>!nil})''。希望它有效。 – 2010-03-11 20:54:50
仍然无法正常工作:/有没有关系,它有很多链接,它总是有人得到了url字段? – Alfred 2010-03-12 16:19:52