如何在rails

时间:2015-07-14 19:05:24

标签: ruby-on-rails ruby sql-server

我正试图通过Windows 7 64位开发机器在网络上使用ruby来处理SQL Server 2005。

我编辑了database.yml:

development:
  <<: *default
  adapter: sqlserver
  dsn: ODBC_SYSTEM_DSN
  username: admin
  password: ********
  host: 111.222.333.444

我完成了本教程(至少在我现在被困住的部分)并且一切正常:http://guides.rubyonrails.org/getting_started.html

一个问题是教程创建了batabase表,我必须使用现有的表。

为了测试目的,我创建了下表:

CREATE TABLE [dbo].[Employee](
    [Emp_ID] [int] NULL,
    [Emp_Name] [nchar](10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]

我运行了这些命令:

rails generate scaffold Employee
rake db:migrate RAILS_ENV=development

看来所有的东西都被创造了。在此处发送浏览器: http://localhost:3000/employees/new

然后我收到了这个错误: 没有路线匹配[POST]“/ employees / new”

由于ruby解释似乎供不应求,我不知道会发生什么事情,我尝试将其添加到routes.rb:

post 'employees/show'

如果那个猜测是对的,那我就更远了。我甚至尝试过:

post 'employees/new'

然后我收到了这个错误(它似乎无法识别列名): 员工中的NoMethodError#new

从这段代码:

<p>
  <%= f.label :ID %><br>
  <%= f.text_field :Emp_ID %>
</p>

我试图看看我是否能够看到数据库,因为只是设置它是一个挑战,没有任何明确的指示。但似乎它可能并不知道这应该如何工作是没有用的。似乎我发现的每个例子都有不同的解释。

1 个答案:

答案 0 :(得分:0)

我建议不要使用脚手架或路由,直到您可以验证Rails可以与您的数据库通信,并且模型正确映射到数据库表。

rails console是你的朋友。仅使用控制台并在app/models中创建测试模型。

Rails表和列名称总是小写的,所以坚持使用这种格式是好的,至少在你可以得到一些工作之前。

除非另有说明,否则Rails表名也始终是模型名称的复数。因此,为了为您的目的制作一个简单的测试用例,您需要为表格employees命名,您的模型名称将为Employee

然后运行rails console,只需在提示符下键入Employee即可。如果一切正常,您应该看到控制台将模型名称和列名称写回给您。

经过这个简单的测试后,您可以更自信地继续执行下一步,因为现在您应该知道数据库连接正常工作。