2016-03-29 15 views
2

Ruby初心者はここにいるので、やさしくしてください。フォームにドロップダウンを選択してもデータベースにデータが保存されません

フォームにドロップダウンメニューを追加しましたが、送信時にデータベースに保存されません。他のフィールドはすべて機能し、他のフィールドと同様の方法でドロップダウンを行います。

は、私はまた、次のコマンドを使用してDBに列を追加しました:

rails g migration AddStatusToIdeas status:enum

rake db:migrate

アプリ/モデル/ idea.rb

class Idea < ActiveRecord::Base 
    has_many :comments 

    mount_uploader :picture, PictureUploader 
    # {attr_accessor :Status} 
    enum status: [ :Draft, :Published] 
end 

アプリ/ビュー/アイデア/ _form.html.erb

<%= form_for(@idea) do |f| %> 
    <% if @idea.errors.any? %> 
     <div id="error_explanation"> 
      <h2><%= pluralize(@idea.errors.count, "error") %> prohibited this idea from being saved:</h2> 

      <ul> 
      <% @idea.errors.full_messages.each do |message| %> 
       <li><%= message %></li> 
      <% end %> 
      </ul> 
     </div> 
    <% end %> 

    <div class="field"> 
     <%= f.label :name %><br> 
     <%= f.text_field :name %> 
    </div> 
    <div class="field"> 
     <%= f.label :description %><br> 
     <%= f.text_area :description %> 
    </div> 
    <div class="field"> 
     <%= f.label :status %><br> 
     <%= f.select(:status, options_for_select([['Draft', 'Draft'],['Published', 'Published']])) %> 
    </div> 
    <div class="field"> 
     <%= f.label :picture %><br> 
     <%= f.file_field :picture %> 
    </div> 
    <div class="actions"> 
     <%= f.submit %> 
    </div> 
<% end %> 
+0

ログファイルを関連するリクエストとともに掲示できますか? –

+0

@Зелёный:http://pastebin.com/WRG91tPi – Edward

答えて

3

あなたが許可されていないのparam statusあります

は、2016年3月29日に127.0.0.1のためのPOST "/アイデア" を開始しました12時20分39秒0300 IdeasController番号による処理は、HTMLパラメータとして作成します。 { "UTF8" => "✓"、 "authenticity_token" => "pVM48/l0mTKe48pfg6TBytPO4eMNRmNBm1aDaHUvfQo ="、 "アイデア" => { "名"=>" SOのテスト "、"説明 "=>" SOのテスト "、 "ステータス " * "ユーザー" * "FROM" users "WHERE" users "" id "= 2 ORDER BY" users " 。 "ID" ASCのLIMIT 10個の許可されていないパラメータ: 状態(0.0ms) "アイデア"( "のcreated_at"、 "説明"、 "名前"、 "updated_atの")VALUES INTO INSERTトランザクションSQL (0.5msの)を開始( "、"、 "、"、 "、"、 "0" [0126] "SOためのテスト"]、[ "updated_atの"、 "2016年3月29日09:20:39.034503"]] (8.7ms)は、トランザクションをコミット http://localhost:3000/ideas/9にリダイレクト24ms (ActiveRecordの:9.2ms)で発見302完成

コントローラの許可パラメータの方法を修正しました。

def idea_params 
    params.require(:idea).permit(:name, :description, :status, :picture) 
end 
+0

'params.require(:idea).permit(:名前、:説明、:ステータス、:picture)'固定しました、ありがとう – Edward

関連する問題