2016-10-28 10 views
0

私は "rails generated scaffold Post"を持っており、post.eachインデックスをform_forに変換しようとしているので、AJAXの "remote:true"を使うことができます。レールをForm_forに渡す

問題:私のコードは自分のレコードを表示しません。テーブルスレッドの見出しだけが表示されます。

class PostsController < ApplicationController 
    before_action :set_post, only: [:show, :edit, :update, :destroy] 

    # GET /posts 
    # GET /posts.json 
    def index 
    @posts = Post.all 
    @post = Post.new 
    end 

    # GET /posts/1 
    # GET /posts/1.json 
    def show 
    end 

    # GET /posts/new 
    def new 
    @post = Post.new 
    end 

    # GET /posts/1/edit 
    def edit 
    end 

^^^は、だから私は唯一のコントローラにこれらの変更を行ったし、次のコードでは、ポストレコード

<tbody> 
<% @posts.each do |mend| %> 
<% form_for(mend) do |f| %> 
    <tr> 
    <td><%= f.text_field :title %></td> 
    <td><%= f.text_field :content %></td> 
    <td><%= f.text_field :verify %></td> 
    <td><%= f.text_field :date %></td> 
    <td><%= f.text_field :rate %></td> 
    <td><%= link_to 'Show', post_path(f) %></td> 
    <td><%= link_to 'Edit', edit_post_path(f) %></td> 
    <td><%= link_to 'Destroy', @post, method: :delete, data: { confirm: 'Are you sure?' } %></td> 
    </tr> 
<% end %> 
<% end %> 

+0

あなたが達成するために何をしようとしていますか? – SomeSchmo

+0

私はポスト・コンテンツとしてすべてのレコードをリストするコードを取得しようとしています。そして私はform_for –

答えて

0

私はあなたがどこかの道に沿って少し混乱持っていると思います。

AJAXリクエストを行うにはform_forを使用する必要はなく、実装した方法ではかなりのバグがあります。

私があなたの要求を正しく理解していると思うのは、表に投稿を表示したり、各エントリのアクションを編集、破棄したりするだけです。 AJAXリクエストとして呼び出すリンク。

あなたが始めるために:

  1. 変更indexアクション単純に:

    def index @posts = Post.all end

  2. はTBODY宣言はなるはずです:

    <tbody> <%= render @posts %> </tbody>

  3. は、テーブルの各行のレンダリングを担当すること_post.html.erb部分を作成します。

    <tr> <td><%= @post.title %></td> <td><%= @post.content %></td> <td><%= @post.verify %></td> <td><%= @post.date %></td> <td><%= @post.rate %></td> <td><%= link_to 'Show', post_path(@post), remote: true %></td> <td><%= link_to 'Edit', edit_post_path(@post), remote: true %></td> <td><%= link_to 'Destroy', @post, method: :delete, data: { confirm: 'Are you sure?' }, remote: true %></td> </tr>

+0

を使用する必要がありますが、部分全体を操作して「リモート:true」の場所を操作できるようにしたい場合 –

+0

私はフォローしていますか?私はリモート:trueステートメントをlink_toヘルパーに追加しました – David

+0

私はただあなたを文字通りに連れて行きました。 –

0

あなたがレンダリングする必要がありますあなたのform_forを表示するために失敗していますフィールドをレンダリングするだけでは不十分です。

は、使用してみてください:

<%= form_for(mend) do |f| %> 

の代わり:

<% form_for(mend) do |f| %> 
関連する問題