我正在做一个项目,我对rails很陌生,
我完全搞不清楚出了什么问题。我得到这个错误。
产品中的命名错误#索引
未初始化常量ProductsController::Offer
本质上,我有一个我试图实现的功能。
在我的产品表中,我有一个名为保留价格的列,我希望用户在产品页面的表单上提交一个数字,然后根据保留价格对其进行验证,如果接受,则将其添加到购物车中,如果不是flash,请输入更高的报价,
问题是我似乎无法弄清楚如何让模型和控制器协同工作。
我整个星期都在做这个,但我还是不知道。
我想知道是否有人可以查看我的代码,看看我缺少了什么,因为对于视图页面,我得到了NilClass: Class的未定义方法“model_name”的错误,我确信我为表单输入了正确的模型,如果我能做到这一点,我可以快速完成其余的工作,但我不知道我缺少了什么。
报价控制器。rb类报价控制器
属性:产品,:报价,:保留价格
def new@报价=报价。新建结束
end
提供型号。rb型
class Offer < ActiveRecord::Base
属于:产品有很多:保留价格
属性:产品,:报价,:保留价格
validates_presence_of:offer validate:确保_满足_reserve_价格
私人def确保_符合_reserve_价格(如果金额)
私人def reserve_price产品。保留价格结束
定义your\u offer@your\u offer=offer。新
结束
def new@offer=Offer.new=:your_offer结束
end
产品索引视图文件
class ProductsController < ApplicationController
before_filter:身份验证,:除外=
/productsproducts.xml
def index@offer=Offer.new
@products = Product.search(params[:search_query])
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @products }
end
结束
#GET/products/1#GET/products/1。xml定义显示
@product = Product.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @product }
end
结束
#GET/products/new#GET/products/new。xml def new@product=product。新
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @product }
end
结束
#GET/products/1/edit def edit@product=product。查找(参数[:id])结束
#邮政/产品#邮政/产品。xml def create@product=current\u用户。产品。新(参数[:产品])
respond_to do |format|
if @product.save
format.html { redirect_to(@product, :notice => 'Product was successfully created.') }
format.xml { render :xml => @product, :status => :created, :location => @product }
else
format.html { render :action => "new" }
format.xml { render :xml => @product.errors, :status => :unprocessable_entity }
end
end
结束
#PUT/products/1#PUT/products/1。xml def update@product=product。查找(参数[:id])
respond_to do |format|
if @product.update_attributes(params[:product])
format.html { redirect_to(@product, :notice => 'Product was successfully updated.') }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @product.errors, :status => :unprocessable_entity }
end
end
结束
#删除 /products/1#删除 /products/1.xmldef销毁@产品=Product.find(参数[: id])@product.destroy
respond_to do |format|
format.html { redirect_to(products_url) }
format.xml { head :ok }
end
结束结束
产品控制器。rb型
class ProductsController < ApplicationController
before_filter :authenticate, :except => [:index, :show]
# GET /products
# GET /products.xml
def index
@products = Product.search(params[:search_query])
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @products }
end
end
# GET /products/1
# GET /products/1.xml
def show
@product = Product.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @product }
end
end
# GET /products/new
# GET /products/new.xml
def new
@product = Product.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @product }
end
end
# GET /products/1/edit
def edit
@product = Product.find(params[:id])
end
# POST /products
# POST /products.xml
def create
@product = current_user.products.new(params[:product])
respond_to do |format|
if @product.save
format.html { redirect_to(@product, :notice => 'Product was successfully created.') }
format.xml { render :xml => @product, :status => :created, :location => @product }
else
format.html { render :action => "new" }
format.xml { render :xml => @product.errors, :status => :unprocessable_entity }
end
end
end
# PUT /products/1
# PUT /products/1.xml
def update
@product = Product.find(params[:id])
respond_to do |format|
if @product.update_attributes(params[:product])
format.html { redirect_to(@product, :notice => 'Product was successfully updated.') }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @product.errors, :status => :unprocessable_entity }
end
end
end
# DELETE /products/1
# DELETE /products/1.xml
def destroy
@product = Product.find(params[:id])
@product.destroy
respond_to do |format|
format.html { redirect_to(products_url) }
format.xml { head :ok }
end
end
end
有什么帮助吗?
非常感谢我在这方面已经有一段时间了,还没有弄清楚!
如果我正确理解你的问题:
>
您希望在产品#显示页面中包含报价表
在这种情况下,您需要在ProductsController show操作中初始化@offer变量,如下所示:
@offer = Offer.new
添加
接下来的问题是:ProductsController::Offer未知,因为您有一个Offer模型,所以它不应该是未知的。我刚刚尝试将您的报价表单包含到一个show action中,它使其正常运行,此外,您还使用一个新的报价实例初始化字段。(可能是一个数量?)。无论如何,我无法从您的代码片段中看出为什么您的控制器中没有提供模型。你能提供完整的来源吗?
我第一次怀疑你的奇怪的私人方法是在Offer
def your_offer
@your_offer = Offer.new
end
def new
@offer = Offer.new = :your_offer
end
是原因,但我已经包括了它们,表格效果很好。但是我,他们到底应该怎么做?
@将有效的打印信息发送到控制台,但不发送到页面 当我的字段有错误@Valid print info到控制台时,为什么不在第页? 字段hotelName上的对象formData中的字段错误:拒绝的值[];代码[Size.formData.hotelName, Size.hotelName, Size.java.lang.String, size];参数[org.springframework.con
bean名称'user'的BindingResult和普通目标对象都不能作为请求属性使用 Apr 05 2019 9:18:13 AM org.apache.catalina.core.StandardWrapperValve调用严重:在路径[/DataVisualization]的上下文中servlet[SpringController]的servlet.service()引发异常[处理JSP
问题内容: 我有一个设置为MSDOS终端样式的聊天机器人。用户键入他们的响应,然后按Enter。我发现当我用“ display:none;”标记按钮时 它会导致页面在多个浏览器上重新加载(我的Windows chrome浏览器无法重新加载。不知道为什么)。如何隐藏按钮,但表单和代码仍能正常运行?我宁愿不使用“ position:absolute;” 将其发送到屏幕之外。 HTML: JAVASCR
问题内容: 这应该很简单,但是却让我发疯。我有一个用ajax提交的html5表单。如果输入的值无效,则会弹出一个提示您的信息。在运行ajax提交之前,如何检查条目是否有效? 形成: 提交: 问题答案: 默认情况下,jQuery对HTML5验证一无所知,因此您必须执行以下操作:
我试图创建一个简单的Spring Boot应用程序 我创建了Spring Boot应用程序类、配置类、控制器类和index.html。 我添加了Thymeleaf依赖项,并将html页面放在resources文件夹下(\src\main\resources\templates\index.html) 但当我运行应用程序时,它会给出一个错误 Thymeleaf的WebConfiguration in
将“然后向我显示页面”这一行添加到cucumber场景中,在我同事的计算机上使用相同的设置,但在我的计算机上则不然。实际上,添加暂停步骤定义并调用它似乎被完全忽略了。 步骤定义: 功能: 命令行: 使用Firefox 16.02(避免17中的错误) 两台机器都有git-fetch'd,拉取,捆绑安装,所以所有的宝石都是相同的,都使用Rbenv版本* 1.9.3-p327-perf。我可能错过了一些