假设我有一个带有线程、帖子和标签的论坛系统。
其结构与StackOverflow相同:线程与POST有1-many关系,标记与线程有多个关系
(简化)表格:
所以亚音速ActiveRecord模板为我生成类
代码
对于首页,我需要获得一个线程列表,并将其相关标签列表附加到每个线程。撇开帖子数不谈,检索标签和构建对象图的最佳方法是什么
如果我得到如下线程:
var threadQuery = Thread.All().Skip(x).Take(n);
var threadList = thread
我们的一些模型文件已经变得非常大,我的任务是将功能拆分为单独的模块
我不确定是否可以使用在同一个表的不同模块中声明的多个模型类
我试过在不同的模块中使用不同的类,除了小心调用哪个模型类之外,这似乎很有效,但是我不确定这是否是一个好的实践,或者是否会有任何需要担心的复杂情况
文件在这方面有点含糊不清
我的当前模型在protected/models/MyModel.php
我想把这个分成几个部分
protected/modules/Moduel1/models/MyModel.php和
protec
我有一个Rails3活动记录查找器方法,我正在尝试将其更新为Rails4模式
在Rails 3中,我的代码如下所示
StripeEvent.setup do
subscribe 'customer.subscription.deleted' do |event|
user = User.find_by_customer_id(event.data.object.customer)
user.expire
end
end
在Rails 4中,我尝试了这个,这段代码正确吗
我正在尝试在CodeIgniter上构建我的第一个应用程序。这也是我第一次尝试尽可能地坚持OOP和MVC。到目前为止一切正常,但现在我正试图写我的第一个模型,我遇到了一些麻烦。下面是我得到的错误:
发生数据库错误
错误号码:1064
您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解第3行“Castledine”附近使用的正确语法
从(authors)中选择*其中author=Earle Castledine
如下所示,这与我的模型中的以下行有关:
$this->db-&g
通常我会将池大小设置为
development:
adapter: postgresql
encoding: unicode
database: openkitchen_development
username: rails
host: localhost
pool: 10
password:
在database.yml中。但是,heroku将替换配置文件。我用女孩星期五来
做后台数据库工作,需要增加线程池大小。这不是很简单,但您可以尝试创建自己的构建包
你将需要分
我需要在CActiveRecord的子类中使用beforeFind()
基本上,在数据库中执行实际搜索之前,我需要转换数据库中的一些数据
如何在beforeFind()中更改即将发生的查找操作?混用$this属性是没有用的,因为它甚至没有填充,这有点令人惊讶。
我看到文档中提到了一个“隐藏的CDbCriteria参数”,但我猜不出该如何使用它。不幸的是,关于这个主题的文档很少
我需要做的很简单:我有一个用于存储IP地址的表列。从可伸缩性的角度来看,最有效的设计是为列使用VARBINARY(16)
我正在调用findAll方法,得到4个字段。现在我想再添加一个名为$owned的字段。
这意味着在我从表中获取记录之后,结果数据记录应该包含owned字段。
此外,$owned字段是动态的,取决于用户是否是组的所有者。我试着用afterFind。但它也不起作用。令人惊讶的是,它将attributed$owned添加到对象中,而不是添加到属性中。
我正在控制器中使用CJSON::encode$model查看输出。未显示$owned字段。
下面是代码
/**
*
* The followings a
我正在使用Rails2应用程序,我需要处理8000条记录并在表中显示它们
我需要限制装载记录
就像8000条记录一样,我想显示10条记录,然后只显示10条记录,然后单击下一步按钮,应该显示下一条10条记录
喜欢分页,但无法进行分页,因为它一次加载所有8000条记录。而且需要花费太多时间
我认为补偿和限制对我有帮助,但我不知道如何使用它
我的基本查询是
@users=@client.users
我也尝试了datatable服务器端,但它不起作用
请帮帮我。
感谢使用Will_paginate ra
如何根据关系表中的条件获取一组数据
在yii1中,我可以使用with()和'on'语句。这在yii2中不起作用,或者我找不到任何好的例子。
例如,在Yii 1中,我可以这样写:
$criteria = new CDbCriteria();
$criteria->with = array('works'=>array('on' => 'works.user_id=t.id AND (works.work_id=$SOMEVALUE OR ...)'));
我尝试了类似的方法(u
我构建了一个简单的表单模型&视图、一个简单的AR模型和一个简单的控制器。表单模型为AR实例指定了正确的值,但是当我调用save()时,这些值都不会保存在DB中。有什么想法吗
表格模型:
<?php
namespace app\models;
use Yii;
use yii\base\Model;
class PromptForm extends Model
{
public $name;
public $intro;
public $prompt;
请让我从下面的例子开始:
我有三张桌子:
users(id,name,family)
roles(id,user_id,chart_id,name,code)
chart(id,name)
关系:
users-roles = 1-n
roles-users = 1-1
roles-chart = 1-1
Yii活动记录类别:
class User extends ActiveRecord {
public function getRoles(){
return $th
我有一个评论表,如下所示:
+-----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+----------------+
| id | int(11) |
我正在尝试使用类似于的调用销毁一个对象
MyObject.destroy_all({:user_id => current_user.id, :item_type_id => params[:type_id], :item_id => params[:item_id]})
Rails将其生成为SQL命令:
User Load (0.5ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1
MyObje
当我执行Ball.find(id)时,是否可以返回BlueBall的实例
使用Ball.where(所有者:某个用户)。要使用BlueBall和RedBall实例,我可以获得一个数组吗
我正在寻找一种方法来显式地设置STI,方法是使用类型以外的一些列,如果可以将类重命名为红色和蓝色,而不是红球和蓝球
def Ball < ActiveRecord::Base
self.inheritance_column = :color
def ball?
is_a?(Ball)
我正在使用缓存在表中的关键字构建搜索。在表中查找用户输入的关键字之前,它是标准化的。例如,删除了一些标点符号,如“-”,并对外壳进行了标准化。然后使用规范化关键字查找和获取搜索结果
我目前正在使用before_过滤器在控制器中处理规范化。我想知道是否有办法在模型中实现这一点。概念上类似于“before_find”回调的方法可以工作,尽管对于实例级别来说没有意义 您可能不想通过覆盖find来实现这一点。覆盖像find这样的东西可能会让人头疼
您可以创建一个类方法来完成您需要的工作,例如:
clas
好的,我正在尝试计算“会员资格状态”=活动的所有行。我现在得到的结果是“数组”而不是数字
这是我的模型
class Report_model extends Model
{
function count_members()
{
$query = $this->db->get_where('Membership', array('Membership_Status' => 'Active'));
return $query->num_rows();
}
}
类报表模型扩展了类报表
我在不同的项目中间歇性地遇到过rspec重新加载ActiveRecord对象,然后清除关联对象的问题
失败规范的一个例子如下:忽略测试的优点,这是一个简化的例子:
# Message has_many :message_attachments
# MessageAttachment belongs_to :message
describe Message, 'instance' do
before(:each) do
@it = Factory(:message)
(1..
我已经实现了一个cryptbehavior类,它可以附加到AR模型,这样附加的属性将以加密的形式存储,并以解密字符串的形式检索
class User extends CActiveRecord
{
public function behaviors()
{
return array(
'crypt' => array(
// this assumes that the behavior is in the f
如何通过日期字段执行简单订单
user.projects.order("quote_sheet_generated").each do |project|
这不管用。它显示项目,但不按quote_sheet_generated字段排序。确实如此,请参阅本主题的指南:
编辑:
这是Heroku的一个临时错误,他们已经修复了
我对heroku的推送/部署在上周运行时失败。这是一个sinatra应用程序,在cedar堆栈上使用activerecord
我能够在Heroku中部署并运行我的应用程序好几次。我用的是postgres和cedar stack
我对app.rb进行了一次空格更改,并按下了按钮,但该按钮未被接受
该应用程序目前正在使用上周的代码在服务器上运行。它正在使用数据库,所以它可以看到它
Heroku info和Heroku config正确列出了数据
将应用程序从yii 2.0.2升级到yii 2.0.35后,在未提交事务中通过连接表获取关系时出现问题
示例3具有活动记录“A B C”的表
AR“A”通过AR“B”与AR“C”有关联
这里有一个示例代码
$dbTransaction = A::getDb()->beginTransaction();
try {
// record in junction table "B" not exist
$c = $a->
我正在使用亚音速3.0.0.4和ActiveRecord T4模板。
我正在连接OnSaving并获得一个即将保存的脏列列表。
我不知道如何获取每个脏列的值。有人能帮忙吗
TIA-Mike我没有找到任何直接的方法来获取脏列值
但是你可以试着去得到它
尝试以下方法:
// item is the entity
List<IColumn> lst = item.GetDirtyColumns();
var res = from p in item.GetType().GetPropert
我在使用macruby和ActiveRecord(w/sqlite3)或。还有其他建议吗?我需要一个简单的轻量级持久性机制来嵌入到我的应用程序中,该机制可以处理不到5个表,最多可以处理数万行。以下组合有效:
MacRuby 0.8
sqlite3-ruby gem 1.3.2
sequel gem 3.18.0
OSX 10.6.5
诀窍是卸载'sqlite3'gem并安装'Sqlite3Ruby'。
MacRuby 0.12
sqlite3-ruby gem 1.3.2
sequel gem
我想知道是否有一种方法可以创建我自己的AR关系规则或扩展现有的HAS\u MANY、Bown\u等
谢谢。每个AR关系都是用相应的类创建的
const BELONGS_TO='CBelongsToRelation';
const HAS_ONE='CHasOneRelation';
const HAS_MANY='CHasManyRelation';
const MANY_MANY='CManyManyRelation';
const STAT='CSta
PortfolioEngine::Portfolio Load 0.3ms选择Portfolio_engine_公文包。*从Portfolio_engine_公文包内部连接Portfolio_engine_公文包上的项目。Portfolio_id=Portfolio_engine_公文包。id按Portfolio_engine_公文包排序。排序指数ASC,Portfolio_engine_公文包排序指数ASC,组合\引擎\项目。排序\索引ASC
PortfolioEngine::Item Loa
我有两个模型,即问题和选择,如下所示
class Question < ActiveRecord::Base
has_many :choices, :dependent => :destroy
accepts_nested_attributes_for :choices, :allow_destroy => true
end
class Choice < ActiveRecord::Base
attr_accessible :text
belongs_
问题:如果联接表的属性大于/小于某个值,是否可以在哈希条件下进行测试
示例:测试参与者年龄是否大于ageVariable:
是否可以写入而不是数组条件的:
ageVariable = 36<br> Movie.includes(:actors).where("actors.age > ?", ageVariable)
使用散列条件只能进行相等、范围和子集检查
ageVariable = 36
Movie.includes(:actors).where(:actors =
我有3个模型,见下面的结构。模型线索属于页面和用户。创建新lead时,如何将lead的用户id保存到lead,如下所示:
p = Page.first
p.leads.new(:email => 'test@test.com')
p.save
这显然只会在Lead模型的新实例上设置页面id。是否有其他方法可以自动将用户id复制到lead,而无需在创建之前创建:检查用户id筛选器
数据库结构为:
User
- id
Page
- id
- user_id
Lead
- email
-
目前我有以下疑问:
return await this.siteRepository.find({
where: [{ id: Like(`%${q}%`) }, { name: Like(`%${q}%`) }]
});
但是我希望能够从数组中传递用于查询的列名列表,而不是手动写入每个列名
const columns = ["id","name", "lastName", "age"]
const query = {};
return await this.siteRep
我使用自制(linux端口)安装freeTDS,并尝试使用gem tinytds部署/捆绑安装我的应用程序。我在安装捆绑包时得到这个错误输出
Installing tiny_tds (0.5.1) with native extensions
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/home/deployer/.rbenv/versions/1.9.2
这就是我想要做的;我认为这是一个常见的问题,但不知为什么我找不到任何相关的话题
我有一个具有作用域唯一性约束的模型。我决定在迁移过程中在表上定义一个唯一的索引,如下所示:
class CreateLossRatios < ActiveRecord::Migration
def up
...
add_index :loss_ratios, [ :tool_id, :ends_at ], :unique => true
end
def down
..
我遵循了RailsCast的简单搜索表单和Heroku的全文搜索说明,正在使用pg_搜索gem
我试图在保留为索引设置的范围的同时搜索我的microposts
这是我的microposts\u controller.rb索引操作
def index
#@microposts = Kaminari.paginate_array(Micropost.popular).page(params[:page]).per(25)
@micropost = current_user.micr
link_to将非常聪明地找出活动记录对象的类型,并创建指向其显示路径的链接。如何找到未知对象类型的此路径。我想要点像这样的东西
<div id="target_path" data-path="<%= path_to @my_polymorphic_instance %>" ></div>
def path_to obj
url_for( :controller => obj.class.to_s.underscore.pluralize,
我升级到4.1.8,现在当我打开控制台会话并执行要求“活动\u记录”时,我得到以下输出:
[1] pry(main)> require 'active_record'
/Users/fzondlo/.rvm/gems/ruby-2.0.0-p195/gems/bigdecimal-1.2.5/bigdecimal.bundle: warning: already initialized constant BigDecimal::BASE
/Users/fzondlo/.rvm/gems/r
在一些模型类中,我想实现缓存。我想这样做:
UsersModel::model()->findByAttributes([...])
在该类中,我希望在forefind之前重写方法,以便首先将请求发送到缓存服务器,但该方法似乎不接受任何附加参数,也不具有具有属性的对象
在顶级代码中添加附加条件/检查,例如:
$response = Yii::app()->cache->get('userUserLogin');
if(empty($response) == true) {
我正在使用RubyonRails应用程序,当我试图从活动记录调用Save方法来填充到数据库的新链接时,我遇到了以下错误。这是出错的代码,它位于my LinksController类中的Create方法中:
def create
@link = Link.new(params[:link])
respond_to do |format|
if @product.save
format.html { render :action => "create" }
我有以下资料:
class Publication < ActiveRecord::Base
belongs_to :project, :inverse_of => :publication
before_create :bind_project
private
def bind_project
self.create_project
end
end
class Project < ActiveRecord::Base
has_
如何在Yii框架中创建多语言活动记录?
因此,在我的CRUD->create/update中,我可以输入例如英文和荷兰语的标题看看国际化:
通过在配置文件中设置language参数,可以指定要使用的语言。用
Yii::t('langfile','message to translate');
有关数据库中的翻译,请参阅:
一旦一切就绪。您可以为翻译创建CRUD操作,就像为其他数据库表创建CRUD操作一样
教程/更多信息:
最后我使用了这个类:
CDbMessageSource解决方案但
考虑到下面两个类Customer和Order,我有一个问题,我已经将问题缩小到我正在使用的回调的执行时间
使用回调的原因是,我需要存储每个客户的聚合差异,而不必每次迭代他/她的所有订单。因此,我意识到使用回调可能是一种好方法,首先在每次保存之前更新每个订单上的差异,然后在每次保存订单之后更新客户模型上的聚合差异
我得到的症状是奇怪的、看似随机的错误,它告诉我两份订单之间的差额(总计238美元)是15美元。当我将调试器限制在受影响的客户时,我意识到它只是跳过下面的orders.each循环(但仅在
全新的Ruby/Sinatra/Rails工具,并基于
在我尝试通过以下命令行创建数据库之前,一切都运行得很顺利:rakedb:create\u migration NAME=create\u model
我得到的错误如下:
rake aborted!
uninitialized constant EN
(erb):4:in `<main>'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0
我安装了Rails 4.1.6
型号报告:
after_find :convert_decimal_to_float
def convert_decimal_to_float
self.mag = self.mag.to_f
end
在rails控制台中:
2.1.2 :001 > r = Report.last
...
2.1.2 :002 > r.mag
=> #<BigDecimal:5032730,'0.31E1',18(36)>
问题是,为
我有一个表单,用户在其中选择一些选项,我想根据用户输入在DB中插入一个附加的连接字段。我需要在场景创建(和更新)时执行此操作。例如:
我试过这样做:
型号:
class Xyz extends BaseXyz {
const SCENARIO_CREATE = 'create';
public function rules() {
...
['concatenated', 'generateConcatenated', 'on' => s
在Yii2中,我试图更改ActiveRecord模型,以便每次应用程序运行find()或findAll()时,它也会向条件添加额外的where
例如,应用程序对股票模型调用find()方法:
$UsersStockFound = Stock::Find()
->where(['stockActive' => 1]);
所以,这就是我想要实现的,我希望模型在用户看到结果之前添加一个额外的条件。
让我们假设我已经在$this->tenant下存储了tenant ref
所以我想把它添加
我有两张桌子。一个是组,另一个是框架。
组的id、名称、所有者为列。
grouppage具有id、名称和用户id。
用户可以拥有组页面。如果用户是组的所有者,则可以编辑页面。表示用户id=所有者。否则,用户无法编辑组页面。
因此,我有一个名为can_edit的公共属性。如果user_id=owner,则为真。
现在我想使用关系ADO连接这两个表。但是我该怎么做呢?因为我必须将grouppage表中的用户id连接到组中的所有者。所有者和组id都不是主键
有什么解决方案/想法吗
多谢大家
Smith
我陷入了一个非常奇怪的问题。在我的项目中,我使用“加载资源”和“授权资源”从数据库中检索信息。
更准确地说,我有ItemsController和action索引。在这个动作中,我有一个实例变量@items,它属于ActiveRecord::AssociationRelation类。如果我将任何参数传递给操作索引,例如ID数组,它将自动合并到此变量。但是@items.to_sql返回以下结果:
SELECT "items".* FROM "items" WHERE "items"."user_i
我想把“firstname”和“lastname”连接起来,就像这个“firstname lastname”
在执行搜索查询时
这是我的密码:
$query = Contact::find()
->select([
"CONCAT_WS(' ', firstname, lastname) AS name"
])
->where('(firstname like :fname) OR (lastname like :lname) OR (emai
我有两个模型:个人模型和租借模型
人员表字段:
身份证
名字
RentedItem字段:
摆脱
电影识别码
租期
我需要添加一个新属性的人模型,其中包含最后的租金日期,但我不知道如何。我已经有了一个getRentDates方法,其中定义了许多关系
你能帮我吗
谢谢。准备以下关系:
public function getLastRentItem()
{
return $this->hasMany(RentItem::class, ['rid' => 'id'])
因为我有一个索引(user\u id,lesson\u id),所以我想用该索引进行查询
对于图像,它不使用索引,对吗
注意:用户ID它是一个整数值,而不是一个字段
//the following SQL it is my expecting:
//not generate by php code. just show a example for what to do.
LEFT JOIN `user_lesson_order` ON (
//user_id is current log
我有两张桌子/型号电脑和主板
计算机-具有以下列/字段:
身份证
名字
主板Id
序列号
主板-具有以下列/字段:
身份证
名字
类型
序列号
这些模型是一对一的关系
在计算机模型中,我有以下方法:
public function getMainboard() {
return $this->hasOne(Mainboard::className(), ['id' => 'mainboard_id']);
}
该视图包含以下GridVie
我正在尝试创建一种搜索功能,以获取所有当前_用户的成员,这些成员都有一个关联的游戏,具有特定的id
我试过:
@members = current_user.members.where(:games.id => params[:id])
但我得到:
undefined method `id' for :games:Symbol
在Rails中如何实现这一点
更新:模型关联
类成员:销毁
有很多:游戏,:通过=>:游戏\u成员,:uniq=>正确
结束
类GamesMembers:gam
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 20 页