Rails form_for表单发送nil而不显示视图

时间:2016-07-14 13:17:48

标签: ruby-on-rails ruby database forms

编辑:我设法解决了这个问题。 Ship控制器采用Ship方法。如果我理解这个问题,我的路线就是调用“get products / ship”来调用方法而不显示视图。重新排列后,一切正常。

这一定是我要忽略的初学者,但我在使用form_for制作的rails 4.2.1 app中有一个表单。

我的问题是我无法实际查看表单,它不会显示任何内容。更糟糕的是,它不是看到页面视图,而是简单地将nil传递给方法并给我错误,因为我的方法显然不适用于nil。

我尝试过使用路径文件无济于事,是否有一些我想念的简单只会导致表单以这种方式运行?我已经咨询了官方指南和哈特尔教程,但我什么都没有。

编辑:我的产品控制器如下:

class ProductsController < ApplicationController



def new
        @product = Product.new
  end

def create
    @product = Product.new(product_params)
end

def show
    @product = Product.find(params[:code])
end


def ship
    @product = Product.find_by(code: params[:code])
    @product.quantity -= 1
    if @product.save
        respond_to do |format|
            format.html {}
            format.json{}
        end
    end
end

private
      def product_params
      params.require(:product).permit(:code, :product, :quantity)
    end

end

我对船舶方法的看法如下:

<%= form_for(@product) do |f| %>
        <%= f.label :code %>
        <%= f.text_field :code %>

        <%= f.submit "Submit", class: "btn btn-primary" %>
<% end %>

我会非常感激任何帮助。我一直盯着这个问题已久,而且我必须要有一些东西。

2 个答案:

答案 0 :(得分:0)

对于html.erb,将ruby注入html你需要等号,如此

&lt;%= for_for

对于haml,它只是一个=符号

= form_for

答案 1 :(得分:0)