我研究了Ruby on Rails的一本电子书:如果我在下面创建一个活动记录:
class Product < ApplicationRecord
end
Rails将执行以下代码来生成表:
CREATE TABLE products (
id int(11) NOT NULL auto_increment,
name varchar(255),
PRIMARY KEY (id)
);
我有一个问题,我可以理解自动生成主键,但为什么要理解:
name varchar(255),
如果name字段是自动生成的?如果有,为何有此需要?
我来自Ruby on Rails环境,我真的被那里的活动记录宠坏了。我在iPhone上使用sqlite做了一个小的概念验证项目,我更加意识到我被宠坏了;)
对于下一个应用程序,我考虑使用核心数据(因为我相信它的工作方式将接近活动记录)。我的应用程序将为用户提供大量的数据(与许多相关的表),我打算定期更新这些数据(每2-3个月)。使用sqlite,这就像下载sqlite文件一样简单,使用核心数据也是如此简单吗?
在更新到rails 5.1之后,在本地运行服务器时,它给出了下面提到的错误,我检查了所有地方,但我没有找到任何解决方案。我也从所有代码中删除了之前的过滤器,但它仍然给出了这个错误。
Gem Load Error is: undefined method `before_filter' for ActionController::Base:Class
Did you mean? before_action
Backtrace for gem load error is:
/home/affi/.rvm/gems/ruby-2.3.1/gems/ie_iframe_cookies-0.2
我从事的是数据处理领域,可能很快就会转向网络编程领域。尽管我对Python和Ruby都很着迷,因为当涉及到编写业务逻辑或数据处理逻辑时,它们似乎都有非常相似的风格。
但当我开始在谷歌上搜索web开发时,我开始倾向于Ruby on Rails,我的问题是,为什么web世界如此痴迷于ruby on rails和活动记录?
似乎有如此多的截屏视频来学习Ruby on Rails,也有太多的好书,为什么Python在创建截屏视频或活动记录之类的ORM时不能吸引人们。
我正在使用Rails2活动记录,并尝试在两个表上执行左连接。我在查看表的所有列名称时遇到了问题。我只看到一个表的列
Students.all(:joins => "LEFT JOIN user on students.id = cards.id")
Active Records生成的Sql为:
SELECT `students`.* FROM `students` LEFT JOIN cards on students.email = cards.id
可以注意到,这里的SELECT语句只在students表上。如何也从cards表中获取列?
我使用的是Ruby1.8
我正在使用公共活动gem来跟踪用户的评论。我希望在查询中获取所有唯一的用户注释。我试着做以下几件事:
PublicActivity::Activity.where(:trackable_type=>"Comment").where(:owner_id => user.id).all.select(:trackable_id).distinct
但我发现了错误:
ArgumentError: wrong number of arguments(1 for 0)
from (irb):14:in `select'
from (irb):14
请不要攻击。下面是让我思考这个问题的示例和代码。
我正在学习ruby on rails,正在使用MVC和params[]运算符。我已经在我的rails笔记本的内页上写下了一些校样或者其他的东西。
"So we don't just want to call tweet #1. Tweet.find(1) isn't enough."
===> we need Tweet.find(params[:id])
params[:id] aka params = { :id => 1 }
所以我给自己标记了不同的部分,从散列开始。“1是值,:id是键,
我使用gem elasticsearch-rails和elasticsearch-model,我很难用elasticsearch-rails编写这个查询。
SELECT "news".* FROM "news"
WHERE "news"."is_active" = 'true' AND
((priority is not null AND created_at > '2014-07-08 08:55:52.888587') OR
(created_at > '20
我正在尝试编写测试,公司对象将保存在这些测试上。但是,不保存公司对象,并且表中没有公司记录。为什么以及如何解决这个问题?
db/schema.rb
ActiveRecord::Schema.define(version: 20140626075006) do
create_table "companies", force: true do |t|
t.string "name"
t.datetime "created_at"
t.datetime "updated_at"
end
end
app
所以,我对红宝石和rails还比较陌生。我正在为我的数据库玩mongoid,虽然我所掌握的唯一知识是使用活动记录。
我创建了一个新项目,确保跳过活动记录,这样以后就不必执行步骤来删除它,以支持mongoid。
我做了一个脚手架rails g scaffold user,然后继续我的路四处看看。因此,由于我知道mongo是一个无模式的db,所以我选择了模型,并对其进行了如下修改:
class User
include Mongoid::Document
include Mongoid::Timestamps
field :name, :type => Stri