我想知道如何为模型添加关联.假设,我生成了两个模型
rails generate model User
rails generate model Car
Run Code Online (Sandbox Code Playgroud)
现在我想添加一个关联,以便模型获取表单
class User < ActiveRecord::Base
has_many :cars
end
class Car < ActiveRecord::Base
belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)
问题是:如何通过迁移应用此修改以获取数据库中的cars_users表?我打算在我的代码中使用该表.
项目不断发展,似乎有必要可视化项目中存在的类之间的关系.其中一些是独立的,其中一些是从其他人继承的.
我正在寻找可视化这些关系的工具.我知道类似的问题在这里已经被问到用于绘制UML类图表的JavaScript库,但据我所知,没有给出适合我需要的答案.
我知道这个统一建模语言工具列表,但它们似乎提供了绘制UML图的可能性,而我需要的是
在Ruby中,此工具称为RailRoady.如果这样的工具也在JavaScript中退出,那将是非常有用的帮助.
我面临以下问题:我有一个非常小的图库,图像文件位于以下目录中
app/assets/images/locale/thumbs/
app/assets/images/locale/big/
Run Code Online (Sandbox Code Playgroud)
我必须创建一个超链接,作为内容有一个拇指图像和目标 - 它来自app/assets/images/locale/big /文件夹的更大版本:
<a href="path-to-full-size-image-001.jpg">
<img alt="first photo preview" src="/assets/locale/thumbs/001.jpg" />
</a>
Run Code Online (Sandbox Code Playgroud)
我是通过这样做的
= link_to(image_tag("locale/thumbs/001.jpg"), "locale/big/spizzicaluna001.jpg")
Run Code Online (Sandbox Code Playgroud)
实际上我已经为link_to的第二个参数尝试了很多变种,但收效甚微 - 找不到更大的文件.
如何解决这个问题?
我正在使用Yii2框架,我想生成这样的HTML代码
<input type="checkbox" id="queue-order" name="Queue[order]" value="1" checked>
Run Code Online (Sandbox Code Playgroud)
在使用ActiveForm的视图中.
我试过了
echo $form->field($model, 'order')
->checkBox(['label' => ..., 'uncheck' => null, 'checked' => true]);
Run Code Online (Sandbox Code Playgroud)
以及
echo $form->field($model, 'order')
->checkBox(['label' => ..., 'uncheck' => null, 'checked' => 'checked']);
Run Code Online (Sandbox Code Playgroud)
但是生成的html代码中没有出现所需的字符串"checked".
奇怪的是,如果我用"选中"代替"选中"
echo $form->field($model, 'order')
->checkBox(['label' => ..., 'uncheck' => null, 'selected' => true]);
Run Code Online (Sandbox Code Playgroud)
然后生成的html代码包含属性"selected":
<input type="checkbox" id="queue-order" name="Queue[order]" value="1" selected>
Run Code Online (Sandbox Code Playgroud)
那么,如何为具有"已检查"属性的复选框生成html代码?
从最近开始写黄瓜功能我得到了警告
[DEPRECATION] "eval" is deprecated. Please use "evaluate" instead
Run Code Online (Sandbox Code Playgroud)
一切正常,但这个警告让我感到不安.我正在使用Rails 3.1.0和ruby 1.9.3p392(2013-02-22修订版39386)[x86_64-linux].我的文件是:
item.feature:
Background: logged in as an admin
Given I am logged in as an administrator
Run Code Online (Sandbox Code Playgroud)
user_steps.rb
Given /^I am logged in as an administrator$/ do
steps %Q{
Given the following users exist:
| email | password | role |
| admin@test.com | admin_password | admin |
| visitor@visitor.com | visitor_password | registered |
And I am on the "home page"
And I follow "Login" …Run Code Online (Sandbox Code Playgroud) 我想知道一旦用迁移创建了一个表,怎么能在Yii中播种?我有一个使用up方法的迁移:
public function up()
{
$this->createTable('users',array('id'=>"pk",
'login'=>'string NOT NULL'));
echo "table 'users' is created.\n";
return true;
}
Run Code Online (Sandbox Code Playgroud)
我有相应的用户模型及其CRUD操作.当我尝试使用up方法执行另一次迁移时
public function up()
{
$user = new Users;
$user->login = "Bob";
return $user->save();
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误: PHP错误[2]:include(users.php):无法打开流:文件MyYiiRoot\yii\framework\YiiBase.php第421行没有这样的文件或目录
我已经设法通过使用查询构建器(通过插入命令)来实现所需的结果,但我希望有一个更好的出路.
我正在使用Yii2和Codeception.问题是Codeception似乎没有看到数据库转储.为简单起见,我只考虑LoginCept验收测试:
use tests\_pages\LoginPage;
$I = new WebGuy($scenario);
$I->wantTo('ensure that login works');
$loginPage = LoginPage::openBy($I);
$I->see('Login', 'h1');
$I->amGoingTo('try to login with empty credentials');
$loginPage->login('', '');
$I->expectTo('see validations errors');
$I->see('Username cannot be blank.');
$I->see('Password cannot be blank.');
...
Run Code Online (Sandbox Code Playgroud)
所以,当我跑
./vendor/bin/codecept run tests/acceptance/LoginCept.php
Run Code Online (Sandbox Code Playgroud)
一切都运行没有错误:
Acceptance Tests (1) ----------------------------------------
Trying to ensure that login works (LoginCept.php) Ok
-------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
但是只要我添加以下行
echo $I->grabFromDatabase('user', 'name', ['id' => 1]);
Run Code Online (Sandbox Code Playgroud)
测试开始失败:
Acceptance Tests (1) ----------------------------------------
Trying to ensure that login works (LoginCept.php) Error
-------------------------------------------------------------
Time: 2.11 seconds, Memory: 9.75Mb …Run Code Online (Sandbox Code Playgroud) 是否有可能创建一个对象obj的模拟,使得Jasmine测试就像
expect(fakeB instanceof B).toBe(true);
Run Code Online (Sandbox Code Playgroud)
经过?
换句话说,我有一个带有方法convertToB的A类,该参数必须是B类的一个实例:
function A(){
this.convertToB = function(elem){
if (!(elem instanceof B)){ throw an error}
...
...
}
}
Run Code Online (Sandbox Code Playgroud)
我想通过创建一个模拟对象来测试该段代码,当被问到它是否是B的实例时它会响应为真.
目前我被迫写了一些测试
这有点烦人.我期待像这样的命令
var fakeB = jasmine.createFake('B')
Run Code Online (Sandbox Code Playgroud)
这样这个问题的第一行代码就会通过.
我想为 Intellij IDEA 编写一个插件,该插件应该修改 Java 和 Kotlin 代码。
我用的方法
PsiClass.getMethods()
Run Code Online (Sandbox Code Playgroud)
为了获取 Java 和 Kotlin 类的所有方法。到目前为止一切顺利,所以我使用类似的方法
PsiClass.add(), PsiClass.addAfter(), PsiClass.addBefore()
Run Code Online (Sandbox Code Playgroud)
一旦在 Java 文件上调用它们,它们都可以正常工作,但开始抛出异常
IncorrectOperationException
Run Code Online (Sandbox Code Playgroud)
有一次我在 Kotlin 课上给他们打电话。
我很感激有关如何修改 Kotlin 和 Java 类的任何提示(最好使用相同的方法)。
是否有可能一次运行一次迁移?
我有一堆迁移文件,整个迁移在我的本地机器上运行没有问题(使用PostgreSQL).
当我部署(服务器使用MySQL)时,整个迁移不成功.
因此,我想重置数据库并逐个运行迁移,以查看出现不一致的位置.
PS问题似乎是多元化:脚本不能从表NNN中删除列order_id,其实际上包含orders_id列.