我正试图通过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>
我试图看看我是否能够看到数据库,因为只是设置它是一个挑战,没有任何明确的指示。但似乎它可能并不知道这应该如何工作是没有用的。似乎我发现的每个例子都有不同的解释。
答案 0 :(得分:0)
我建议不要使用脚手架或路由,直到您可以验证Rails可以与您的数据库通信,并且模型正确映射到数据库表。
rails console
是你的朋友。仅使用控制台并在app/models
中创建测试模型。
Rails表和列名称总是小写的,所以坚持使用这种格式是好的,至少在你可以得到一些工作之前。
除非另有说明,否则Rails表名也始终是模型名称的复数。因此,为了为您的目的制作一个简单的测试用例,您需要为表格employees
命名,您的模型名称将为Employee
。
然后运行rails console
,只需在提示符下键入Employee
即可。如果一切正常,您应该看到控制台将模型名称和列名称写回给您。
经过这个简单的测试后,您可以更自信地继续执行下一步,因为现在您应该知道数据库连接正常工作。