0

Ruby on Rails は初めてです。私の質問は奇妙に聞こえるかもしれませんが、行き詰まっています。私はHTMLページにあるフォームCreateを持っています。を使用render partialしましたが、このフォームは価値を生み出していません。これが私のコントローラーコードです。

Controller.rb

before_filter :signed_in_user, only: [:create, :destroy]


    def create
        @suppliers = current_user.suppliers.build(params[:supplier_name])
        if @suppliers.save
            flash[:success] = "Supplier Saved!"
            redirect_to 'suppliers/home'
        else
            render 'suppliers/home'
        end
     end

    def destroy
    end

    def home
        if signed_in?
            @supplier  = current_user.suppliers.build
            @feed_items = current_user.feed.paginate(page: params[:page])
        end
    end

私の家.html.erb

 <div class="row">
    <aside class="span4">
      <section>
        <%= render 'suppliers/suppliers_form' %>
      </section>
    </aside>
    <div class="span8">
      <h3>Micropost Feed</h3>
      <%= render 'suppliers/feed_supplier' %>
    </div>
  </div>

私の_supplier_form.html.erb

<%= form_for(@supplier)  do |f| %>

  <div>
    <%= f.text_field :supplier_name, placeholder: "Add new Supplier" %>
  </div>
  <%= f.submit "Add", class: "btn btn-large btn-primary" %>
<% end %>

私の_feed_supplier.html.erb

<% if @feed_items.any? %>
  <ol class="microposts">
    <%= render partial: 'suppliers/feed_item', collection: @feed_items %>
  </ol>
  <%= will_paginate @feed_items %>
<% end %>

私の_feed_item.html.erb

<li id="<%= feed_item.id %>">
  <span class="user">
    <%= link_to feed_item.user.name, feed_item.user %>
  </span>
  <span class="content"><%= feed_item.supplier_name %></span>
</li>

私を正しい方向に導いてください。他に何か必要なことがあれば、尋ねてください。前もって感謝します

:上記のファイルはすべて同じフォルダー、つまりサプライヤーにあります。コントローラーファイルを除く

4

2 に答える 2

2
form_for @supplier

次のようなパラメーターハッシュを作成します

{ :supplier => { :supplier_name => '[some value you put in your form]' }}

したがって、作成アクションは使用する必要があります

@suppliers = current_user.suppliers.build(params[:supplier])

params[:supplier_name] はありません。

于 2013-07-25T07:26:28.487 に答える
1

パーシャルについては、次のように書く必要はないと思いますsuppliers/*

<%= render 'suppliers/suppliers_form' %>

だけかもしれない

<%= render 'suppliers_form' %>

なぜそれがアプリの動作を引き起こすのかはわかりませんが、試してみる価値はあります!

于 2013-07-25T07:05:23.177 に答える