【问题标题】:How to Pass Form Field Values to a Different Controller View in Rails?如何将表单字段值传递给 Rails 中的不同控制器视图?
【发布时间】:2021-10-31 14:32:10
【问题描述】:

在我的 Rails 6 应用程序中,我有一个 Product 和 Order 模型。

在我的 products#show 页面上,我有一些字段和一个按钮。我需要做的是将信息发送到 orders#new 页面,以便此数据显示在 orders#new 页面上。

我曾尝试根据Pass variables without model associations in Railshow to pass parameters in params using form_tag method in rails 编写一些代码,但我的代码似乎完全错误。

关于产品#show:

<%= form_tag(new_order_path do |form| %>
  <%= form.input_field :comments %>
  <%= form.button %>
<% end %>

使用此代码,我得到 undefined method text_field' 的 nil:NilClass`。

我尝试将 attr_accessor :comments 添加到 Product 和 Order 模型,但没有帮助。

我不认为我的方法或我试图编写的代码是正确的。我只是想从这些答案中拼凑出部分内容。

有人可以帮我找出将这些数据传递给 Orders#new 以在该视图中显示的最佳方式吗?

【问题讨论】:

  • 您不应该对 OrdersController 的新操作进行 POST,使用方法: :get 如@h4ppyr0gu3 所示。要使用发送的值初始化新的 Order 对象,您可以访问参数。

标签: ruby-on-rails


【解决方案1】:
<%= form_with url: "/search", method: :get do |form| %>
  <%= form.label :query, "Search for:" %>
  <%= form.text_field :query %>
  <%= form.submit "Search" %>
<% end %>

来自文档

https://guides.rubyonrails.org/form_helpers.html

而且显示路径也需要一个id

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-15
    相关资源
    最近更新 更多