0

私は RoR を初めて使用し、開始するためだけに小さなアプリケーションを作成しています。

すべてのサプライヤーを一覧表示するサプライヤー ページがあり、その中には、新しい製品を作成できる「新しい」製品ページへの link_to があります。製品ページへの link_to を介してサプライヤー ID を送信し、そこに保存する必要があります。 hidden_​​field_tag 値

ここに私の製品ページがあります

<%= form_for @product, :url => {:action => "create"} do |f| %>

        <%= f.label :product_name %>
        <%= f.text_field :name %>



        <%= collection_select(:product, :product_category_id, ProductCategory.all, :id, :category,  {prompt: 'Select category'}) %>

        <%= hidden_field_tag(:supplier_id, Supplier.first[:id]) %>

        <%= f.submit "Create a product", class: "btn btn-primary"%>

    <% end %>`

Supplier.first[:id] はコードを試すだけです

これは私のサプライヤーページです

<% provide(:title, 'All suppliers') %>
<h1>All suppliers</h1>
<ul class="suppliers">
    <% @suppliers.each do |supplier| %>
    <li>
        <%= link_to supplier.name %>
        <%= link_to "Add a product", products_path, :class => "btn btn-primary",:method => "get" %>

        <div>
            <% if supplier.products.any? %>
            <h5>Products (<%= supplier.products.count %>)</h5>
            <ol>
            <% supplier.products.each do |product| %>

                <li><%= product.name %></li>
                <% end %>
            </ol>
            <% end %>
        </div>
    </li>
    <% end %>
</ul>

何か案は ?

編集:

class ProductsController < ApplicationController



    def new
        @product = Product.new

    end

    def create

        @product = Product.new(params[:product])
        if @product.save
            redirect_to "/products"
        else
            render 'new'
        end
    end

編集 2: 私の製品モデル:

class Product < ActiveRecord::Base
  attr_accessible :name, :supplier_id, :product_category_id

  attr_accessor :supplier_id, :product_category_id


  belongs_to :supplier

  belongs_to :product_category

  validates :supplier_id, presence: true
  validates :product_category_id, presence: true

end

rake routes を実行すると、次のようになります。

karam@karam-Inspiron-N5010:~/rails-projects/devise$ rake routes
       new_admin_session GET    /admins/sign_in(.:format)      devise/sessions#new
           admin_session POST   /admins/sign_in(.:format)      devise/sessions#create
   destroy_admin_session DELETE /admins/sign_out(.:format)     devise/sessions#destroy
            admin_unlock POST   /admins/unlock(.:format)       devise/unlocks#create
        new_admin_unlock GET    /admins/unlock/new(.:format)   devise/unlocks#new
                         GET    /admins/unlock(.:format)       devise/unlocks#show
        new_user_session GET    /users/sign_in(.:format)       devise/sessions#new
            user_session POST   /users/sign_in(.:format)       devise/sessions#create
    destroy_user_session DELETE /users/sign_out(.:format)      devise/sessions#destroy
           user_password POST   /users/password(.:format)      devise/passwords#create
       new_user_password GET    /users/password/new(.:format)  devise/passwords#new
      edit_user_password GET    /users/password/edit(.:format) devise/passwords#edit
                         PUT    /users/password(.:format)      devise/passwords#update
cancel_user_registration GET    /users/cancel(.:format)        devise/registrations#cancel
       user_registration POST   /users(.:format)               devise/registrations#create
   new_user_registration GET    /users/sign_up(.:format)       devise/registrations#new
  edit_user_registration GET    /users/edit(.:format)          devise/registrations#edit
                         PUT    /users(.:format)               devise/registrations#update
                         DELETE /users(.:format)               devise/registrations#destroy
                products POST   /products(.:format)            products#create
             new_product GET    /products/new(.:format)        products#new
                 product GET    /products/:id(.:format)        products#show
           suppliers_new        /suppliers/new(.:format)       suppliers#new
               suppliers        /suppliers(.:format)           suppliers#index
        suppliers_create        /suppliers/create(.:format)    suppliers#create
                                /products(.:format)            products#new

EDIT3:

私の ProductCategory モデル:

class ProductCategory < ActiveRecord::Base
  attr_accessible :category

  has_many :products


end

このモデルのコントローラーは空です。

4

1 に答える 1