申し訳ありませんが、いくつかのRailsの人々からアドバイスとベストプラクティスが必要です。Rails + MySqlベストプラクティスを使用したWebサービス
私はかなり新しいプラットフォームですが、以前はJavaでデータベースバックアップされたWeb開発作業を行ってきました。この時点で、私は約20のチュートリアルを通して作業しました。そして、私は同じ場所で邪魔され続けています。
ここでは私がやったことと私が経験していることがあります。私は反映するために、私はMySQLの中で私のスキーマとテーブルを作成した、と私はレールのアカウントを作成した(RAILS_ROOT/pass1234)とのconfig/databases.ymlの更新
rails my_rails_app
を使用して新しいアプリケーションを作成しました新しいアカウント:
ruby script/generate scaffold customer
正常に返さ:この時点で
development:
adapter: mysql
encoding: utf8
reconnect: false
database: demo_development
username: rails_root
password: pass1234
host: localhost
は、私は「顧客のテーブルのための足場を生成します。したがって、サーバーを起動します。
ローカルマシンのポート3000でMongrelを起動し、サーバーを正常に起動します。ブラウザをhttp://localhost:3000/customersにした後、ページには「顧客を表示する」と正しく表示されますが、にはと記載されたフィールドがありません。 「新規顧客」のリンクを押すとまだのフィールドはありませんが、空の顧客レコードを作成することができます。この操作では、すべてのフィールドにNULL値が設定されているため、実行しようとしたSQLクエリでは、 'name'カラムをnullにすることはできません。
私はその時点で自分のフィールドをピックアップしていると主に混乱しています、なぜそれが以前に表示されていないのですか?明らかに、それは正しいデータベースに接続しており、正しいテーブルを特定しています。どうしたんだ?
今のところ、サーバーを起動する前にテーブルにエントリを配置すると、「顧客の表示」ヘッダーの下に「表示」、「編集」、および「破棄」リンクオプションが表示されるようになりました。ただし、フィールドやデータは反映されません。 「破棄」をクリックすると、表のレコードが実際に破棄されます。しかし、エラーメッセージでない限り、レールで生成されたWebページのレコードやフィールドはまだ見ていません。
これは私の生成足場コマンドから出力された:
\ROR\my_app>ruby script/generate scaffold contact
exists app/models/
exists app/controllers/
exists app/helpers/
create app/views/contacts
exists app/views/layouts/
exists test/functional/
exists test/unit/
create test/unit/helpers/
exists public/stylesheets/
create app/views/contacts/index.html.erb
create app/views/contacts/show.html.erb
create app/views/contacts/new.html.erb
create app/views/contacts/edit.html.erb
create app/views/layouts/contacts.html.erb
create public/stylesheets/scaffold.css
create app/controllers/contacts_controller.rb
create test/functional/contacts_controller_test.rb
create app/helpers/contacts_helper.rb
create test/unit/helpers/contacts_helper_test.rb
route map.resources :contacts
dependency model
exists app/models/
exists test/unit/
exists test/fixtures/
create app/models/contact.rb
create test/unit/contact_test.rb
create test/fixtures/contacts.yml
create db/migrate
create db/migrate/20090414185634_create_contacts.rb
そして、ここでは主要なファイルが生成されます。
アプリの\コントローラ\ contacts_controller.rb
class ContactsController < ApplicationController
# GET /contacts
# GET /contacts.xml
def index
@contacts = Contact.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @contacts }
end
end
# GET /contacts/1
# GET /contacts/1.xml
def show
@contact = Contact.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @contact }
end
end
# GET /contacts/new
# GET /contacts/new.xml
def new
@contact = Contact.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @contact }
end
end
# GET /contacts/1/edit
def edit
@contact = Contact.find(params[:id])
end
# POST /contacts
# POST /contacts.xml
def create
@contact = Contact.new(params[:contact])
respond_to do |format|
if @contact.save
flash[:notice] = 'Contact was successfully created.'
format.html { redirect_to(@contact) }
format.xml { render :xml => @contact, :status => :created, :location => @contact }
else
format.html { render :action => "new" }
format.xml { render :xml => @contact.errors, :status => :unprocessable_entity }
end
end
end
# PUT /contacts/1
# PUT /contacts/1.xml
def update
@contact = Contact.find(params[:id])
respond_to do |format|
if @contact.update_attributes(params[:contact])
flash[:notice] = 'Contact was successfully updated.'
format.html { redirect_to(@contact) }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @contact.errors, :status => :unprocessable_entity }
end
end
end
# DELETE /contacts/1
# DELETE /contacts/1.xml
def destroy
@contact = Contact.find(params[:id])
@contact.destroy
respond_to do |format|
format.html { redirect_to(contacts_url) }
format.xml { head :ok }
end
end
end
アプリ\ビュー\ contacts \ index.html.erb
<h1>Listing contacts</h1>
<table>
<tr>
</tr>
<% @contacts.each do |contact| %>
<tr>
<td><%= link_to 'Show', contact %></td>
<td><%= link_to 'Edit', edit_contact_path(contact) %></td>
<td><%= link_to 'Destroy', contact, :confirm => 'Are you sure?', :method => :delete %></td>
</tr>
<% end %>
</table>
<br />
<%= link_to 'New contact', new_contact_path %>
アプリ\ビュー\連絡先\ show.html.erb
<%= link_to 'Edit', edit_contact_path(@contact) %> |
<%= link_to 'Back', contacts_path %>
アプリ\ビュー\連絡先\ new.html.erb
<h1>New contact</h1>
<% form_for(@contact) do |f| %>
<%= f.error_messages %>
<p>
<%= f.submit 'Create' %>
</p>
<% end %>
<%= link_to 'Back', contacts_path %>
アプリ\ビュー\連絡先\ edit.html。erb
<h1>Editing contact</h1>
<% form_for(@contact) do |f| %>
<%= f.error_messages %>
<p>
<%= f.submit 'Update' %>
</p>
<% end %>
<%= link_to 'Show', @contact %> |
<%= link_to 'Back', contacts_path %>
これ以上のアドバイスをいただければ幸いです。
あなたの足場が正しく生成されなかったようです。作成したコードを投稿できますか? –
絶対に。私はそれによって生成されたソースを投稿しました。 "show.html.erb"はそれほど役に立ちません! ありがとうございました。何かがあなたに飛び出したら教えてください。 –