現在、Rails4でユーザー投稿型のアプリケーションを開発しており、Naverまとめのようなコンテンツのブロックを組み合わせて記事を作っていく機能を作成したいと思っております。
そこでテーブル構成は下記のようになっております。
**
Postテーブル**
has_many :items #カラム↓ #: name #: description
itemテーブル
has_one :heading,content,movie,quate #カラム↓ #: order #こちらはitemの順番を保持するカラムです #: post_id
heading, content, movie, quateテーブル
belongs_to :item #カラムは各テーブル毎に違ったものを保持しています。
そして下記のようにコントローラーで指定し、
PostsController
def new @post = current_user.posts.build @item = @post.items.build @item.build_heading @item.build_content @item.build_movie @item.build_quate end
ビューで下記のように階層関係のフォームを表示しております。
form.html.erb
<%= form_for(@post) do |f| %> <% if @post.errors.any? %> <ul> <% @post.errors.full_messages.each do |msg| %> <li><%= msg %></li> <% end %> </ul> <% end %> <%= f.label :タイトル %> <%= f.text_field :title, placeholder: "ポストのタイトルを入力" %> <%= f.label :概要 %> <%= f.text_field :description, placeholder: "ポストの概要を入力"%> <%= f.label :画像のアップロード %> <%= f.file_field :image %> <%= f.hidden_field :user_id %> <ul id="wighet"> <li><div><br><a class="widgetselecterbtn">見出し</a></div></li> <li><div><br><a class="widgetselecterbtn">テキスト</a></div></li> <li><div><br><a class="widgetselecterbtn">Youtube</a></div></li> <li><div><br><a class="widgetselecterbtn">引用</a></div></li> <ul> <div id="entry_list"> </div> <%= f.fields_for @item do |m| %> <%= m.hidden_field :order, value: '0' %> <div class="ItemWidget01 itemselected hide"> <%= render 'headings/form_fields', m: m %> </div> <div class="ItemWidget01 itemselected hide"> <%= render 'contents/form_fields', m: m %> </div> <div class="ItemWidget01 itemselected hide"> <%= render 'movies/form_fields', m: m %> </div> <div class="ItemWidget01 itemselected hide"> <%= render 'quates/form_fields', m: m %> </div> <%= m.submit %> <% end %> <%= f.submit %> <% end %>
今回この <%= m.submit %> がクリックされた段階で、一旦保持されたデータをビューに表示し、確認しながらほかのitemも追加していけるようにしたいと思います。
様々な方法等を調べたのですが、よくわからず、困っています。
どなたかお力添えいただけませんでしょうか?
あなたの回答
tips
プレビュー