小编And*_*rew的帖子

添加与现有模型的关联

我想知道如何为模型添加关联.假设,我生成了两个模型

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表?我打算在我的代码中使用该表.

migration ruby-on-rails associations

50
推荐指数
3
解决办法
5万
查看次数

用于为javascript中的现有类生成UML图的工具

项目不断发展,似乎有必要可视化项目中存在的类之间的关系.其中一些是独立的,其中一些是从其他人继承的.

我正在寻找可视化这些关系的工具.我知道类似的问题在这里已经被问到用于绘制UML类图表的JavaScript库,但据我所知,没有给出适合我需要的答案.

我知道这个统一建模语言工具列表,但它们似乎提供了绘制UML图的可能性,而我需要的是

  1. 一个独立的工具
  2. 从我的类定义的javascript代码生成UML图表

在Ruby中,此工具称为RailRoady.如果这样的工具也在JavaScript中退出,那将是非常有用的帮助.

javascript uml diagrams

23
推荐指数
2
解决办法
3万
查看次数

ruby on rails link_to图片

我面临以下问题:我有一个非常小的图库,图像文件位于以下目录中

 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的第二个参数尝试了很多变种,但收效甚微 - 找不到更大的文件.

如何解决这个问题?

ruby-on-rails image link-to

14
推荐指数
1
解决办法
2万
查看次数

yii2:勾选复选框

我正在使用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代码?

html php yii active-form

8
推荐指数
1
解决办法
5万
查看次数

"eval"已弃用.请改用"评估"

从最近开始写黄瓜功能我得到了警告

[DEPRECATION] "eval" is deprecated. Please use "evaluate" instead
Run Code Online (Sandbox Code Playgroud)

一切正常,但这个警告让我感到不安.我正在使用Rails 3.1.0ruby 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)

ruby linux ruby-on-rails cucumber

7
推荐指数
1
解决办法
2144
查看次数

如何在Yii种子?

我想知道一旦用迁移创建了一个表,怎么能在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行没有这样的文件或目录

我已经设法通过使用查询构建器(通过插入命令)来实现所需的结果,但我希望有一个更好的出路.

migrate seed yii

4
推荐指数
1
解决办法
2829
查看次数

codeception没有看到dump.sql

我正在使用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)

php mysql yii codeception

4
推荐指数
1
解决办法
2087
查看次数

jasmin:类的模拟实例

是否有可能创建一个对象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的实例时它会响应为.

目前我被迫写了一些测试

  1. 它(如果参数是一个字符串',则抛出错误')
  2. 它(如果参数是数组,则会抛出错误)
  3. ...

这有点烦人.我期待像这样的命令

 var fakeB = jasmine.createFake('B')
Run Code Online (Sandbox Code Playgroud)

这样这个问题的第一行代码就会通过.

javascript tdd jasmine

3
推荐指数
1
解决办法
1万
查看次数

修改 Kotlin 类

我想为 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 类的任何提示(最好使用相同的方法)。

intellij-idea intellij-plugin kotlin

3
推荐指数
1
解决办法
487
查看次数

rails逐个迁移

是否有可能一次运行一次迁移?

我有一堆迁移文件,整个迁移在我的本地机器上运行没有问题(使用PostgreSQL).

当我部署(服务器使用MySQL)时,整个迁移不成功.

因此,我想重置数据库并逐个运行迁移,以查看出现不一致的位置.

PS问题似乎是多元化:脚本不能从表NNN中删除列order_id,其实际上包含orders_id列.

ruby migration ruby-on-rails

2
推荐指数
1
解决办法
858
查看次数