如何獲取所有'鏈接'條目,並且將'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