Rails 4.1.0
アプリケーションで働いています。cloud9 IDE
です。 (投稿後の確認メッセージがありません
私はフィールドには情報を入力しない:私は、お問い合わせフォームページでfields: Name, Email, Comments
のテスト情報を入力し、no「をメッセージ送信し」確認してアドレスバーに提出し、以下の情報が表示クリック空白)、空白の情報が再びNO「エラー」確認メッセージ、アドレスバーに表示されていない提出し、クリックされた:私は、コンソールにbundle exec rails c
とContact.all
を入力
、何のエントリはここにリストされていないといませんエントリがデータベースに保存されます。
2.3.0:001> Contact.all
接触荷重(2.9ms)、 "連絡先を" SELECT * "連絡先"
> => #<ActiveRecord::Relation []>
から私は。私のコードで何が問題なのかを理解しようとしましたが、いくつかの変更を加えましたが役に立たなかったのです。誰かが私に気付かないかもしれない。ここでは閲覧や助言のための私のコードは次のとおりです。
Contacts_controller.rb
class ContactsController < ApplicationController
def new
@contact = Contact.new
end
def index
end
def create
@contact = Contact.new(contact_params)
if @contact.save
name = params[:contact][:name]
email = params[:contact][:email]
body = params[:contact][:comments]
ContactMailer.contact_email(name, email, body).deliver
flash[:success] = "Message sent."
redirect_to new_contact_path
else
flash[:danger] = "Error occured, message has not been sent."
redirect_to new_contact_path
end
end
private
def contact_params
params.require(:contact).permit(:name, :email, :comments)
end
end
routes.rbを
Rails.application.routes.draw do
resources :contacts, only:[:new, :create], path_names: { new: ""}
get '/about' => 'pages#about'
root 'pages#home'
application.html.erb
<div class="container">
<% flash.each do |key, value| %>
<div class="alert alert-success", role="alert"<% key %>"Message sent!">
<% value %>
</div>
<div class="alert alert-danger", role="alert"<% key %>"Error occured, message not sent!"><% value %>
</div>
<button type="button", class="close", data-dismiss="alert", aria-label="Close"><span aria-hidden="true"></span>×></span></button>
<%= value %>
<% end %>
</div>
<%= yield %>
あなたのすべてのフラッシュを見るには<%= flash.inspect%>を試してください。また、flash.now [:success]を設定して、それが役立つかどうか確認してください。 –
@AndrewWei変更を適用しましたが、まだ確認メッセージが表示されず、データベースに保存されません。 – Theo
モデルにエラーがあるためデータベースに保存していない場合。 'puts @ contact.errors.inspect'のエラーを表示します。 –