2

こんにちは、私はレールの初心者です。いくつかのアプリケーションを作成していますが、ある時点で立ち往生しています。

問題は、ユーザーIDごとに製品にデータを挿入したいのですが、次のように言っています:

初期化されていない定数

ここに私のルートファイルがあります:

Rails.application.routes.draw do
  #devise_for :users
  devise_for :users, :controllers => { :registrations => 'users/registrations' }
  resources :dashboard
  root to: "home#index"

  namespace :user do
    resources :users
  end

  resources :product
end

これが私の製品コントローラー、つまりproduct_controller.rbです。

class Product::ProductController < ApplicationController
  def new
    @product = Product.new
  end

  def create
    @product = Product.new(params[:product])
    if @product.save
      flash[:success] = "Product Added"
      redirect_to product_index_path
    else
      flash[:success] = @product.errors.full_messages.join
      redirect_to :back
    end
    end
  end

そして、ここに私の new.html.erb コードがあります:

<h2>Add Product</h2>

<%= form_for(resource, :as => resource_name, :url => user_registration_path) do |f| %>

  <div class="field">
    <%= f.label :product_name %><br />
    <%= f.text_field :product_name, autofocus: true %>
  </div>

<%= p.hidden_field :user_id, :value => current_user %>

  <div class="actions">
    <%= f.submit "Add Product" %>
  </div>
<% end %>

<% end %>

私はこれも間違っていることを知っています:

<%= form_for(resource, :as => resource_name, :url => user_registration_path) do |f| %>

すべてのパーツを 1 つにするにはどうすればよいですか? 私の目標は、新しいページを使用して製品名を追加し、製品リスト ページにリダイレクトすることです。

4

2 に答える 2

0

コントローラーの名前を次のように変更しますproducts_controller.rb

次に変更

class Product::ProductController < ApplicationController
  -------------
end

class Product::ProductsController < ApplicationController
  -------------
end

ルートも変更する必要があります。質問で述べたように、名前空間内に製品コントローラーが必要な場合productは、以下に示すようにルートを宣言する必要があります。

namespace :product do
    resources :products
end
于 2015-07-07T11:20:39.170 に答える
0

コントローラーの名前を次のように変更しますproducts_controller.rb

次に変更

class Product::ProductController < ApplicationController
  -------------
end

class Product::ProductsController < ApplicationController
  -------------
end

ルートファイルは次のように変更する必要があります

  namespace :product do
    resources :products
  end

それ以外のresources :product

于 2015-07-07T11:32:11.243 に答える