フォームで郵便番号を取得してデータベースに保存する新しいアプリケーションを開始しました。私の問題は、作成アクションは私が何を試しても呼び出されていないように見えるということです。フォームで呼び出されないアクションを作成する
ルート:
root 'postcodes#new'
resources :postcodes, only: [:new ,:create]
コントローラー:postcodes_controller.rb
class PostcodesController < ApplicationController
def new
@postcode = Postcode.new
end
def create
@postcode = Postcode.new(postcode_params)
if @postcode.save
flash[:success] = 'Success'
else
flash[:error] = 'Error'
end
end
private
def postcode_params
params.require(:postcode).permit(:code)
end
end
モデル:postcode.rb
class Postcode < ApplicationRecord
validates :code, presence: true, uniqueness: true
end
ビュー:郵便番号/ new.haml
.container
%form
%fieldset.form-group
= form_for @postcode do |f|
= f.label :postcode
= f.text_field :code, placeholder: 'Example Postcode', class: 'form-control'
= f.submit 'Submit', class: 'btn btn-primary'
私はメソッドとアクションなどform_for
のオプションを渡そうとしましたが、今はルーティングエラーだと感じています。
ご協力いただければ幸いです。
ありがとうございました。
*作成アクションが呼び出されていないように見える*あなたはどのように伝えますか?レコードが作成されないことをデータベースにチェックインしましたか?エラーメッセージが表示されますか?メソッドの最後にリダイレクトを定義しなかったので、 'create'メソッドはビューを持っていますか? – spickermann
申し訳ありませんが私は明確にされている必要があります。フォームを送信するときにデータベースに何も追加されず、作成アクションの最上部に '' raise''を置くと、何も起こりません。 –
サーバーログには何が表示されますか?エラーはありますか? – Pavan