【问题标题】:Rails form_for form sending nil without letting displaying the viewRails form_for 表单发送 nil 而不显示视图
【发布时间】:2016-07-14 13:17:48
【问题描述】:

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

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

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

我尝试使用路由文件无济于事,是否有一些我遗漏的简单内容会导致表单以这种方式运行?我查阅了官方指南和 hartl 教程,但一无所获。

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

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

我对ship方法的看法如下:

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

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

如果有任何帮助,我将不胜感激。我已经盯着这个看了这么久,一定有什么我错过了。

【问题讨论】:

  • 你能发布你的代码吗?

标签: ruby-on-rails ruby database forms


【解决方案1】:

【讨论】:

  • 我用等号得到它。
【解决方案2】:

对于 html.erb,要将 ruby​​ 注入到 html 中,您需要等号,就像这样

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

= form_for

【讨论】:

  • 不,我有等号。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-17
  • 1970-01-01
  • 2012-10-19
  • 1970-01-01
  • 2015-09-09
  • 1970-01-01
相关资源
最近更新 更多