Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 尝试将Sinatra样式的表单移动到Rails中时的混乱_Ruby On Rails_Ruby_Sinatra - Fatal编程技术网

Ruby on rails 尝试将Sinatra样式的表单移动到Rails中时的混乱

Ruby on rails 尝试将Sinatra样式的表单移动到Rails中时的混乱,ruby-on-rails,ruby,sinatra,Ruby On Rails,Ruby,Sinatra,为了学习rails,我正在尝试构建一个应用程序,用户可以通过Twilio购买电话号码。最初,我用两个模型来实现这一点;用户有许多电话号码,这些电话号码属于用户。我想我已经处理了这个部分,但我困惑的是如何实现 (1) 搜索电话号码 (2) 一旦选择了该数字,将其填充到表单中,将其与其他信息一起推送到数据库中 我在看这个医生想弄清楚-- 但是,它是用Sinatra编写的,Sinatra是一个轻量级ruby框架,我最有经验的是完成Michael Hartl的《Rails》一书。控制器和视图的啮合让我很

为了学习rails,我正在尝试构建一个应用程序,用户可以通过Twilio购买电话号码。最初,我用两个模型来实现这一点;用户有许多电话号码,这些电话号码属于用户。我想我已经处理了这个部分,但我困惑的是如何实现

(1) 搜索电话号码 (2) 一旦选择了该数字,将其填充到表单中,将其与其他信息一起推送到数据库中

我在看这个医生想弄清楚--

但是,它是用Sinatra编写的,Sinatra是一个轻量级ruby框架,我最有经验的是完成Michael Hartl的《Rails》一书。控制器和视图的啮合让我很困惑

看着它,我想我需要创建一个新的控制器,比如find_numbers,它有一个新的、create和show动作。创建操作将呈现phone_numbers控制器的新操作,然后将其发布到数据库

但是,这里有一件棘手的事情。我不知道如何将不在数据库中的信息字段移动到另一个视图

例如,假设我在find_numbers视图中有这个

  <form method="POST">
    <label>near US postal code (e.g. 94117): </label><input type="text" size="4" name="in_postal_code"/><br/>
    <label>near this other number (e.g. +4156562345): </label><input type="text" size="7" name="near_number"/><br/>
    <label>matching this pattern (e.g. 415***EPIC): </label><input type="text" size="7" name="contains"/><br/>
    <input type="submit" value="SEARCH"/>
  </form>
对于“创建视图”

          <%= numbers.each do |number| %>
       <form method='POST' action='/buy-number'>
       <label><%=number.friendly_name %></label>
       <input type='hidden' name='PhoneNumber' value='#{number.phone_number}' />
       <input type='submit' value='BUY' /></form>
      <% end %>

但是我得到了错误

undefined local variable or method `numbers' for #<#<Class:0x597cc48>:0x5979570>
未定义的局部变量或方法“numbers”#

好吧,比这清楚多了。我最初的问题是,我不理解rails是如何处理表单的,以及它是否能够接收到未连接到数据库的字段的信息

帮助很大,下面是我的控制器现在的样子:

class FindNumbersController < ApplicationController

    def new
        @user = current_user
    end

    def create
        @user = current_user
        render 'find_numbers/show'
    end

    def show
        @user = current_user
        client = Twilio::REST::Client.new(@user.twilio_account_sid, @user.twilio_auth_token)

        search_params = {}
          %w[in_postal_code near_number contains].each do |p|
            search_params[p] = params[p] unless params[p].nil? || params[p].empty?
        end

        local_numbers = client.account.available_phone_numbers.get('US').local
        @numbers = local_numbers.list(search_params)    


    end

end
类findnumberscocontroller
我仍然对表演有问题,但这超出了这个问题的范围

undefined local variable or method `numbers' for #<#<Class:0x597cc48>:0x5979570>
class FindNumbersController < ApplicationController

    def new
        @user = current_user
    end

    def create
        @user = current_user
        render 'find_numbers/show'
    end

    def show
        @user = current_user
        client = Twilio::REST::Client.new(@user.twilio_account_sid, @user.twilio_auth_token)

        search_params = {}
          %w[in_postal_code near_number contains].each do |p|
            search_params[p] = params[p] unless params[p].nil? || params[p].empty?
        end

        local_numbers = client.account.available_phone_numbers.get('US').local
        @numbers = local_numbers.list(search_params)    


    end

end