画像をアップロードするフォームを作ろうとしたのですが、newアクションから画像をアップロードする画面を呼び出そうとしたところ、NoMethodError in KmapsController#new
undefined method `kmap_id' for #Kmap:0x007f8d34dbbc08 というエラーが出て困っています。
↓がkmap.rbです
Ruby
1class Kmap < ActiveRecord::Base 2 belongs_to :gallery 3 mount_uploader :image, ImageUploader 4end 5
↓が_form.html.erbです
Ruby
1<%= form_for(@kmap) do |f| %> 2 <% if @kmap.errors.any? %> 3 <div id="error_explanation"> 4 <h2><%= pluralize(@kmap.errors.count, "error") %> prohibited this kmap from being saved:</h2> 5 6 <ul> 7 <% @kmap.errors.full_messages.each do |message| %> 8 <li><%= message %></li> 9 <% end %> 10 </ul> 11 </div> 12 <% end %> 13 14 <div class="field"> 15 <%= f.label :map_img %><br> 16 <%= f.text_field :map_img %> 17 </div> 18 <div class="actions"> 19 <%= f.submit %> 20 </div> 21 22 <%= form_for @kmap, :html => {:multipart => true} do |f| %> 23 24<%= f.hidden_field :kmap_id %> 25<p> 26<%= f.label :name %><br /> 27<%= f.text_field :name %> 28</p> 29<p> 30<%= f.file_field :image %> 31</p> 32<p><%= f.submit %></p> 33<% end %> 34 35<% end %> 36
_form.html.erbの<%= f.hidden_field :kmap_id %>はidを入力する画面を隠したまま、新しいデータをDBに追加するコードだと思っていたのですが、勘違いでしょうか よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。