Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 使用;及;铁路运营商_Ruby_Ruby On Rails 4 - Fatal编程技术网

Ruby 使用;及;铁路运营商

Ruby 使用;及;铁路运营商,ruby,ruby-on-rails-4,Ruby,Ruby On Rails 4,我有这样的想法: @photos = Photo.where(:user_id => @user.id) 我想要像这样的东西: @photos = Photo.where(:user_id => @user.id, :public => 1) 然而,这不起作用。我找不到如何使用“AND”运算符 @photos = Photo.where("user_id = ? AND public = ?", @user_id, 1) 活动记录将帮助您。试试看 @photos = P

我有这样的想法:

@photos = Photo.where(:user_id => @user.id)
我想要像这样的东西:

@photos = Photo.where(:user_id => @user.id, :public => 1)
然而,这不起作用。我找不到如何使用“AND”运算符

@photos = Photo.where("user_id = ? AND public = ?", @user_id, 1) 
活动记录将帮助您。

试试看

@photos = Photo.where("user_id = ? AND public = ?", @user_id, 1) 

Active record将对您有所帮助。

您的解决方案应该可以:

Photo.where(user_id: @user.id, public: 1)
生成如下查询(假设MySQL和
@user.id
为5):

我怀疑
public
是一个布尔字段,根据您的数据库适配器,
true
false
可以存储为
1
0
或存储为
t
f

尝试传递一个布尔值,让Rails处理转换:

Photo.where(user_id: @user.id, public: true)
如果设置关联和一些作用域,则更容易:

class User < ActiveRecord::Base
  has_many :photos
end

class Photo < ActiveRecord::Base
  belongs_to :user
  scope :public, -> { where(public: true) }
  scope :private, -> { where(public: false) }
end

您的解决方案应该有效:

Photo.where(user_id: @user.id, public: 1)
生成如下查询(假设MySQL和
@user.id
为5):

我怀疑
public
是一个布尔字段,根据您的数据库适配器,
true
false
可以存储为
1
0
或存储为
t
f

尝试传递一个布尔值,让Rails处理转换:

Photo.where(user_id: @user.id, public: true)
如果设置关联和一些作用域,则更容易:

class User < ActiveRecord::Base
  has_many :photos
end

class Photo < ActiveRecord::Base
  belongs_to :user
  scope :public, -> { where(public: true) }
  scope :private, -> { where(public: false) }
end

数据库并不总是将布尔值存储为
1
0

所以ActiveRecord规范化了这一点,并且在使用哈希条件时只识别
true
false
(或
nil

所有这些查询都是等效的:

@photos = Photo.where("user_id = ? AND public = ?", @user.id, 1)
@photos = Photo.where(user_id: @user.id, public: true)
@photos = Photo.where(user: @user, public: true)
但一般来说,人们更喜欢这样写:

@photos = @user.photos.where(public: true)

数据库并不总是将布尔值存储为
1
0

所以ActiveRecord规范化了这一点,并且在使用哈希条件时只识别
true
false
(或
nil

所有这些查询都是等效的:

@photos = Photo.where("user_id = ? AND public = ?", @user.id, 1)
@photos = Photo.where(user_id: @user.id, public: true)
@photos = Photo.where(user: @user, public: true)
但一般来说,人们更喜欢这样写:

@photos = @user.photos.where(public: true)

你的数据库是什么?activerecord?@Stefan是对的。您的代码是生成和查询的简单方法。它应该有用!你的数据库是什么?activerecord?@Stefan是对的。您的代码是生成和查询的简单方法。它应该有用!OP的查询有什么不同?OP的查询有什么不同?