如何使用用户 ID rails 4 在产品 table 中插入数据
How to insert data in product table with user id rails 4
你好,我是 rails 的绝对新手。创建一些应用程序但停留在某个点上。
问题是我想根据用户 ID 在产品中插入数据,但它说:
未初始化常量 ProductController
这是我的路线文件:
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| %>
如何将所有零件合二为一?我的目标是利用新页面添加产品名称并重定向到产品列表页面。
将您的控制器重命名为 products_controller.rb
然后改变
class Product::ProductController < ApplicationController
-------------
end
到
class Product::ProductsController < ApplicationController
-------------
end
连路线都要改。
如果您希望产品控制器位于问题中提到的名称空间 product
内,则必须如下所示声明路由。
namespace :product do
resources :products
end
将您的控制器重命名为 products_controller.rb
然后改变
class Product::ProductController < ApplicationController
-------------
end
至
class Product::ProductsController < ApplicationController
-------------
end
路由文件应该改成这样
namespace :product do
resources :products
end
而不是resources :product
你好,我是 rails 的绝对新手。创建一些应用程序但停留在某个点上。
问题是我想根据用户 ID 在产品中插入数据,但它说:
未初始化常量 ProductController
这是我的路线文件:
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| %>
如何将所有零件合二为一?我的目标是利用新页面添加产品名称并重定向到产品列表页面。
将您的控制器重命名为 products_controller.rb
然后改变
class Product::ProductController < ApplicationController
-------------
end
到
class Product::ProductsController < ApplicationController
-------------
end
连路线都要改。
如果您希望产品控制器位于问题中提到的名称空间 product
内,则必须如下所示声明路由。
namespace :product do
resources :products
end
将您的控制器重命名为 products_controller.rb
然后改变
class Product::ProductController < ApplicationController
-------------
end
至
class Product::ProductsController < ApplicationController
-------------
end
路由文件应该改成这样
namespace :product do
resources :products
end
而不是resources :product