Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.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 需要关于HTML Select元素的goofy Rails验证错误的建议吗_Ruby On Rails - Fatal编程技术网

Ruby on rails 需要关于HTML Select元素的goofy Rails验证错误的建议吗

Ruby on rails 需要关于HTML Select元素的goofy Rails验证错误的建议吗,ruby-on-rails,Ruby On Rails,无论我在这个Select元素中选择哪个选项,我都会在rails中不断得到这个验证错误: 位置不包括在列表中 DB迁移 class CreateOrders < ActiveRecord::Migration def change create_table :orders do |t| t.string :name t.string :email t.string :location t.text :notes t

无论我在这个Select元素中选择哪个选项,我都会在rails中不断得到这个验证错误: 位置不包括在列表中

DB迁移

class CreateOrders < ActiveRecord::Migration
  def change
    create_table :orders do |t|
      t.string :name
      t.string :email
      t.string :location
      t.text   :notes

      t.timestamps
    end
  end
end

您需要使用将控制器中的location属性列为白名单

从您的日志中:

不允许的参数:位置


select标记中每个选项的值是多少(你能粘贴html源代码吗)?@它由模型中的位置填充。-生成HTML Select元素的代码是“表单的相关部分”的最后一位。您可以发布参数散列的内容吗?您会收到错误,因为选项中的值与位置不同。这就是我需要源代码而不是ERB的原因。@hawk这就是你需要的吗?我真是个大傻瓜。非常感谢。
class Order < ActiveRecord::Base
    has_many :line_items, dependent: :destroy
    LOCATIONS = [ '001 (Lubbock)', '002 (Odessa)', '003 (Midland)', '004 (Lubbock)' ]
    validates :name, :email, presence: true
    validates :location, inclusion: LOCATIONS

    def add_line_items_from_cart(cart)
        cart.line_items.each do |item|
            item.cart_id = nil
            line_items << item
        end
    end
end
<div class="field">
   <%= f.label :location %><br>
   <%= f.select :location, Order::LOCATIONS,
                prompt: 'Select your location' %>
</div>
<div class="field">
    <label for="order_location">Location</label><br>
    <select id="order_location" name="order[location]"><option value="">Select your location</option>
<option value="001 (Lubbock)">001 (Lubbock)</option>
<option value="002 (Odessa)">002 (Odessa)</option>
<option value="003 (Midland)">003 (Midland)</option>
<option value="004 (Lubbock)">004 (Lubbock)</option></select>
  </div>
Started POST "/orders" for 127.0.0.1 at 2013-08-11 23:58:50 -0500
Processing by OrdersController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"Q+XfWgAWXQG6tD710B+3QKlwz7klsuMTG3uZKhmWwA8=", "order"=>{"name"=>"Drew Wyatt", "email"=>"test@example.com", "location"=>"002 (Odessa)", "notes"=>""}, "commit"=>"Place Order"}
  [1m[35mCart Load (0.1ms)[0m  SELECT "carts".* FROM "carts" WHERE "carts"."id" = ? LIMIT 1  [["id", 46]]
Unpermitted parameters: location
  [1m[36mLineItem Load (0.1ms)[0m  [1mSELECT "line_items".* FROM "line_items" WHERE "line_items"."cart_id" = ?[0m  [["cart_id", 46]]
  [1m[35m (0.1ms)[0m  begin transaction
  [1m[36m (0.1ms)[0m  [1mrollback transaction[0m
  Rendered orders/_form.html.erb (3.2ms)
  Rendered orders/new.html.erb within layouts/application (3.9ms)
  [1m[35mProduct Load (0.1ms)[0m  SELECT "products".* FROM "products" WHERE "products"."id" = ? ORDER BY "products"."id" ASC LIMIT 1  [["id", 2]]
  [1m[36mProduct Load (0.1ms)[0m  [1mSELECT "products".* FROM "products" WHERE "products"."id" = ? ORDER BY "products"."id" ASC LIMIT 1[0m  [["id", 3]]
  Rendered line_items/_line_item.html.erb (2.3ms)
  Rendered carts/_cart.html.erb (3.6ms)
Completed 200 OK in 46ms (Views: 15.3ms | ActiveRecord: 0.7ms)