我有以下表格: id description additional_info 123 XYZ XYD 和一个数组: [{It is known to be XYZ},{It is know to be none},{It is know to be XYD}] 我需要以这样的方式映射内容:对于表的每个记录,我能够定义成功匹配的数量。 以上示例的结果将是: id RID Matches 1 123 2 只有位置0和2的内容与记录的description / additional_info Matches因此Matches在结果中为2。 我正在努力将其转换为Postgres中的查询 – 动态SQL以精确地在PL / pgSQL函数中创建VIEW 。
可以说我有几张桌子 orders = Arel::Table.new :orders stores = Arel::Table.new :stores managers = Arel::Table.new :managers 经理有很多商店,商店有很多订单。 有一天,我想查询经理工作的订单的平均总数。 哦,我想把它归到商店。 所以要清楚,我想得到一个经理的平均订单总额,对于他们工作的每个商店。 我们假设我们已经找到了我们的经理: manager = Manager.find(some_id) totals = orders.where(orders[:store_id].in(manager.store_ids)).group(orders.store_id).project(orders[:total].average) puts totals.to_sql “SELECT AVG(`orders`.`total`) AS avg_id FROM `orders` WHERE `orders`.`store_id` IN (1, 2, 3) GROUP BY `orders`.`store_id`” 是的,这很棒。 但是,如何查询这些平均值的平均值? 什么是Arel来获取此查询? “SELECT AVG(avg_id) FROM (SELECT AVG(`orders`.`total`) AS avg_id FROM `orders` WHERE `orders`.`store_id` […]
我正在尝试实现一个消息应用程序,暂时没有ActionCable。 当我映射所有邮件时,我只想显示来自该用户的最后一条消息:我只显示最后一条消息,而不是显示来自用户的所有消息。 我不知道如何实现这一目标。 我以为我可以将key设置为user_id而不是id 。 _messagesRender: function(){ var messages = this.props.message.map( function(m, i){ return( {m.body} ) }); return( {messages.length === 0 ? “No messages” : messages} ) }, 这个组件在索引页面上,我正在尝试创建一个类似消息的应用程序。 任何与React的指针? Rails 5用作后端。 警告:flattenChildren(…):遇到两个孩子用同一把钥匙, .$2 。 子键必须是唯一的; 当两个孩子共用一把钥匙时,只会使用第一个孩子。 后端: @messages = Message.where(to: current_user.id) 消息模型:: :id, :to, :user_id, :body user_id是发送/创建消息的人。
在Ruby on Rails指南中,我看到了使用Joins的示例。 例如 Category.joins(:posts) 导致查询 SELECT categories.* FROM categories INNER JOIN posts ON posts.category_id = categories.id 这一切都很好,但是如何使用Active Record返回类别和post列? 或者我完全错过了SQL的东西?
我正在为一家印刷公司构建一个Web应用程序,并试图确定我的数据库的最佳设计。 我有一张orders表。 每个order都有很多certificate。 但是,有两种不同的certificate:电子certificate和物理certificate。 此外,如果它是电子证据,我需要存储图像源,如果它是物理证据,我需要存储跟踪号码。 每个证据都有很多与之相关的评论。 如果我可以只有一个proofs表和一个comments表,那将是很好的,但根据proofs样类型跟踪图像源和跟踪号码的最佳方法是什么? 我考虑过为electronic_proofs和physical_proofs创建单独的表,但这需要制作一个单独的electronic_proof_comments表和physical_proof_comments表。 另一种选择是拥有一个proofs表,在这种情况下我可以有一个comments表。 但是,正如我所看到的,这将需要三个支持表, proof_types , image_sources和tracking_numbers 。 有关最佳方式的想法,还是解决这个问题的更好方法?
表用户(具有id,用户名,密码,is_admin) 我的控制器(我添加的地方) def create @user = User.new(params[:respondent]) # entered = User.find(:all, :conditions => [“email = ?”, @user]) render :json => @user.to_ext_json(:success => @user.save) return false end 当我粘贴相同的电子邮件时,我得到了这个: pre>Mysql::Error: Duplicate entry ‘sam@sa.com’ for key ’email’: INSERT INTO `users` (`created_at`, `updated_at`, `email`) VALUES(‘2011-05-05 09:05:57’, ‘2011-05-05 09:05:57’, ‘sam@sa.com’) 怎么避免这个? 我应该在控制器中写什么(有些如果?) 谢谢!
我希望设置嵌套的注释,并希望使用自联接来设置它。 class Comment ‘Comment’ #… end 现在,我将使用什么sql表结构来设置has_many自连接? 我假设这样的事情: comment_to_comments: parent_id integer child_id integer 如何告诉rails使用此表? 如何告诉rails parent_id是到达父级的外键,child_id是到达子级的外键?
我的终端用于显示SQL表插入语句(默认情况下应该这样),现在它没有。 其他所有内容 – 例如,GET请求,本地服务器启动信息或作业完成通知 – 都显示为正常。 对于我的生活,我无法弄清楚问题是什么。 我一直在寻找很长一段时间,无法弄清楚这会发生什么原因。 你有什么想法指出我正确的方向吗?
运行rake db:create时出现此错误 root@guidir-smaill-group-1-po7p:/home/acc/site/site# RAILS_ENV=production rake db:create # Couldn’t create database for {“adapter”=>”mysql2”, “encoding”=>”utf8”, “pool”=>5, “username”=>”root”, “password”=>”pass”, “host”=>”173.144.230.182”, “database”=>”dbname”}, {:charset=>”utf8″, :collation=>”utf8_unicode_ci”} (If you set the charset manually, make sure you have a matching collation) 这个错误看起来相当普遍,我在这里看了很多关于修复它的post。 但它们都包括使用这些命令删除和重新安装MySQL export ARCHFLAGS=”-arch i386 -arch x86_64″ gem install mysql — –with-mysql-dir=/usr/local \ –with-mysql-config=/usr/local/bin/mysql_config sudo env ARCHFLAGS=”-arch x86_64″ gem install mysql — […]
好吧,所以我们的Accounts有很多具有很多Impressions Schedules 。 我想获取Accounts.name ,所有Accounts.schedules ,但只获取Accounts.schedules.date , Accounts.schedules.summary以及Accounts.schedules.summary的数量。 这里是一个可视化的我想要给一个帐户(我想要所有帐户) Account: .name Schedules .date .summary count(Schedule.impressions) 以下是查询过多的代码 Account.find_each do |account| puts a.name # Account.name a.schedules.each do |schedule| puts schedule.date # Account.schedule.date puts schedule.summary # Account.schedule.summary puts schedule.impressions.count # Count(Account.schedule.impressions) 我想在尽可能少的查询中做到这一点,也许也可以学到一些东西! 我喜欢效率和优化。