Rails 将整数值从视图传递到控制器

Rails passing integer value from view to controller

我必须添加一个视图,用户将在其中输入一个数字,我们将根据该数字进行响应。在这里,我向用户询问一个数字,如果他提交,我们将为此生成段落数。

在 _show_data.html.erb 文件

中 nil:NilClass 出现错误 未定义的方法“each”

应用程序控制器

class ApplicationController < ActionController::Base
private
    def baconipsum
        @baconipsum ||= Faraday.new("https://baconipsum.com/") do |f|
          f.response :json
        end
      end
end

文章Controller.rb

def showData
    @value = params[:value] 
@bacon = baconipsum.get("api/", type: 'all-meat',paras: @value).body
  end

_form_data.html.erb

<%= form_for:article do %>
    <label for="value">Value</label>
    <%= text_field_tag :value %>
    <%= submit_tag "Submit" %>
<% end %>

_show_data.html.erb

    <% @bacon.each do |meat| %>
  <p><%= meat %></p>
<%end%>

在 Rails 中套管材料 很多 。任何文件名都不应该曾经包含大写字母,像showData这样的文件名应该永远不会存在。这不是一个意见案例,这是 Rails 从模型名称正确推断文件名称所必需的。

您的文件名应该是 _form_data.html.erb_show_data.html.erb。无论您在哪里调用 render 'showData',也必须将其更改为 render 'show_data'。该调用可能是间接发生的。