ruby-on-rails – 获取所有条目,在Rails中使用空列
发布时间:2020-12-17 01:22:52 所属栏目:百科 来源:网络整理
导读:如何获取所有“链接”条目,并删除那些空白的“网址”列?我的控制器看起来像这样: 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 =
如何获取所有“链接”条目,并删除那些空白的“网址”列?我的控制器看起来像这样:
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') 我仍然获得所有链接,即使是那些有空网址的链接…… 编辑#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') 我仍然获得所有链接,即使是那些有空网址的链接…… 我想知道这是否与空白字段之间有区别? 编辑#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| %> 解决方法
它不是@user,它
User.all(:conditions => 'url != NULL') 编辑: 其实我有一个疑问.是“链接”用户表中的列还是模型? 编辑#2 你的意思是:@ user.links.all(:conditions => {:url =>!nil}) 编辑#3 找到了! url IS NOT NULL或URL!= NULL或任何使用NULL的东西都无法解决您的问题,因为正如您所说,null和空字段之间存在差异.以下代码对我有用: @user.links.all(:conditions => "url <> ''") 正如@klew建议的那样,如果你使用named_scope会更好: #model named_scope :not_null_url,:conditions => "url <> ''" #controller @user.links.not_null_url (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |