我正在起草一个称为“外部数据库”的模式。
示范档案在分类申报之外没有编码。 我增加了索引、新显示和_form.html.erb的页面。
config/routes.rb 载有“<代码>资源:外部——数据库代码>。 该模式目前没有任何专用资源。 在该申请中还宣布了其他模式,尽管目前没有任何一种模式与这一模式互动,它们都经过测试,在宣布<代码>资源之前已经运作和关闭:外部数据库<>/代码>。
在索引中,我有以下链接:new_external_database_path
,如果我正确的话,这种链接就象{:action =>“new”,: Controller =>“external_database”}
。
这应当从理论上上载数据应用程序/外部数据基/新数据库,使<代码>_form.html.erb。 <代码>第1行>_form :<%=格式_for(@externaldatabase) do OH/code%><>
职称中说明的问题是在使用与新链接时发生的。 尿应用/外部数据库/新系统有以下错误:
<编码> 无航道匹配{:action=>“show”: Controller=>“external_databases”
When I created a data member using rails console
, it was displayed properly by index and show. The same _form
file is used by the edit
method, and successfully edits the console-created data member. Destroy also functions.
...... 因此,为什么没有承认新方法?
My controller code for this model:
class ExternalDatabasesController < ApplicationController
def index
@external_databases = ExternalDatabase.all
respond_to do |format|
format.html # 指数.html.erb
format.json { render :json => @external_databases }
end
end
# POST /external_databases
# POST /external_databases.json
def new
@external_database = ExternalDatabase.new
respond_to do |format|
format.html # New.html.erb
format.json { render :json => @external_database }
end
end
def show
@external_database = ExternalDatabase.find(params[:id])
respond_to do |format|
format.html # 显示.html.erb
format.json {render :json => @external_database }
end
end
def create
@external_database = ExternalDatabase.new(params[:external_database])
respond_to do |format|
if @external_database.save
format.html {redirect_to @external_database, :notice => "New External Database Profile was created successfully!"}
format.json {render :json => @external_database, :status => :created, :location => @external_database}
else
format.html {render :action => "new"}
format.json { render :json => @external_database.errors, :status => :unprocessable_entity }
end
end
end
#GET /external_databases/1/edit
def edit
@external_database = ExternalDatabase.find(params[:id])
end
# PUT /external_databases/1
# PUT /external_databases/1.json
def update
@external_database = ExternalDatabase.find(params[:id])
respond_to do |format|
if @external_database.update_attributes(params[:external_database])
format.html {redirect_to @external_database, :notice => "External Database Profile was updated successfully!" }
format.json {head :ok}
else
format.html { redner :action => "edit" }
format.json {render :json => @external_database.errors, :status => :unprocessable_entity }
end
end
end
# DELETE /external_databases/1
# DELETE /external_databases/1.json
def destroy
@external_database = ExternalDatabase.find(params[:id])
@external_database.destroy
respond_to do |format|
format.html { redirect_to external_databases_rul }
format.json { head :ok }
end
end
end
更新:添加路线.rb和《意见》
My routes.rb file:
App::Application.routes.draw do
resources :type_as do
resources :type_bs
end
resources :type_bs do
resources :type_as
resources :type_cs
end
resources :type_cs do
resources :type_bs
end
resources :external_databases
root :to => "home#index"
end
外部数据库——格式
<%= form_for(@external_database) do |f| %>
<div class="field">
<%= f.label :name %><br/>
<%= f.text_field :name %><br/>
</div>
<div class="field">
<%= f.label :description %><br/>
<%= f.text_field :description %><br/>
</div>
<div class="field">
<%= f.label :url %><br/>
<%= f.text_field :url %><br/>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
指数.html.erb
<p id="notice"><%= notice %></p>
<h1>External Databases</h1>
<table border="1">
<tr>
<th>Database Name</th>
</tr>
<% @external_databases.each do |exdb| %>
<tr>
<td><%= exdb.name %></td>
<td><%= truncate(exdb.description) %></td>
<td><%= link_to Show , exdb %></td>
<!-- link_to.... :target => "_blank" will open the url in a new window -->
<td><%= link_to Visit , exdb.url, :target => "_blank" %></td>
<td><%= link_to Edit , edit_external_database_path(exdb)%></td>
<td><%= link_to Destroy , exdb, :confirm => Are you sure? , :method => :delete %></td>
</tr>
<% end %>
</table>
<br/>
<%= link_to New External Database Profile , { :action => "new", :controller => "external_databases" }%> |
<%= link_to Home , root_path %>
New.html.erb
<h1>Creating a new External Database Profile</h1>
<%= render form %>
<%= link_to Back , external_database_path %>
显示.html.erb
<p id="notice"><%= notice %></p>
<table cellspacing="3" cellpadding="5" border="1">
<tr>
<th><b>External Database Name</b></th>
<th><b>Database ID</b></th>
</tr>
<tr>
<td><%= @external_database.name %></td>
<td><%= @external_database.id %></td>
</tr>
<tr colspan="2">
<th><b>URL</b></th>
</tr>
<tr colspan="2">
<td><%= @external_database.url %></td>
<td><%= link_to Visit External Database , @external_database.url %></td>
</tr>
</table>
<p>
<h3>Description</h3>
<!% @external_database.description.split.scan(/.{,60}/).each do |line| %>
<!%= line %><br/>
<!% end %>
</p>
<br /><br /><br />
<%= link_to Back to External Database Index , external_databases_path %> |
<%= link_to Edit , edit_external_database_path(@external_database) %> |
<%= link_to Destroy , :confirm => Are you sure? , :method => :delete %>