小编Mak*_*aki的帖子

rails 4 ActiveModel :: ForbiddenAttributesError

我尝试使用rails 4进行简单的创建

我的控制器:

class AdsController < ApplicationController

  def new
    @ad = Ad.new
  end

  def create
    @ad = Ad.new(params[:ad])    
    @ad.save
  end

  def show
    @ad = Ad.find(params[:id])
  end

  def index
    @ads = Ad.first(3)
  end


  private
  def ad_params    
    params.require(:ad).permit(:title, :price, :description)
  end
end
Run Code Online (Sandbox Code Playgroud)

形成:

<%= form_for @ad do |p| %>
  <p><%= p.text_field :title %></p>
  <p><%= p.text_field :price %></p>
  <p><%= p.text_area :description %></p>
  <p><%= p.submit %></p>
<% end %>
Run Code Online (Sandbox Code Playgroud)

从我的观点来看,这没关系,但我得到了这个错误ActiveModel::ForbiddenAttributesError ,我做错了什么?

更新:

我的问题是将错误的值传递给create action中的新方法:解决方案是传递ad_params给它

ruby-on-rails ruby-on-rails-4

25
推荐指数
3
解决办法
7万
查看次数

Twitter bootstrap typeahead延迟

我使用twitter bootstrap typeahead来显示来自服务器的一些数据,问题是当用户键入字母typeahead对服务器进行ajax调用时,当我尝试快速键入2或3个字母时,它将对服务器进行2或3个ajax调用,是当用户输入字母只对服务器进行一次ajax调用时,有可能延迟

我的代码目前:

$('#SEARCH-INPUT').typeahead({
                            source: function (query, process) {

                                jQuery.ajax({
                                    type: "GET",
                                    url: "/organisations/search",
                                    data: {search_name: $("#SEARCH-INPUT").val()},
                                    beforeSend: function(){
                                        $("#SEARCH-LOADING").show();
                                    },
                                    success: function (data) {
                                        organisations = [];
                                        organisations_hash = {};
                                      $.each(data, function(i, item){
                                        organisations_hash[item.name.toUpperCase()] = item.id;
                                        organisations.push(item.name);

                                      });
                                      organisations.sort();

                                      $("#SEARCH-LOADING").addClass("hidden");
                                      process(organisations);
                                    },
                                    error: function (){ alert("error");},
                                    async:   false
                                    });
                            }
                            ,updater: function (item) {
                                $("#SEARCH-INPUT").val(item);
                                $("#SEARCH-BUTTON").click();
                                return item;
                            }
                            ,items: 9
                            ,minLength: 1
                       });
Run Code Online (Sandbox Code Playgroud)

javascript twitter-bootstrap

20
推荐指数
1
解决办法
1万
查看次数

导轨3不是零

我正在尝试使用where方法从我的表中选择所有非空的记录

MyModel.where(:some_id => !nil) 
Run Code Online (Sandbox Code Playgroud)

但它不起作用,还有其他解决办法吗?

ruby-on-rails

7
推荐指数
2
解决办法
4305
查看次数

rails slim语法错误

我试着做一个简单的桌子

table class="table table-striped"
  thead
    tr
      th username
Run Code Online (Sandbox Code Playgroud)

它工作正常,但当我尝试添加另一个th或tbody我得到一个错误格式缩进,例如这段代码对我不起作用

table class="table table-striped"
  thead
    tr
      th username
      th provider
Run Code Online (Sandbox Code Playgroud)

要么

table class="table table-striped"
  thead
    tr
      th username
  tbody
    tr
      td test
Run Code Online (Sandbox Code Playgroud)

有谁能够帮我?

ruby-on-rails slim-lang

6
推荐指数
1
解决办法
2792
查看次数

将处理程序绑定到具有相似 ID 的多个元素

我有很多元素,id它们的属性类似于element_num,其中num是元素的数量。我想要它,以便当我单击这些元素之一时,它会被删除。

第一个问题是如何使用选择器来查找这些元素(我想我在这里需要像正则表达式这样的东西)。

第二个问题是如何获取被点击的元素id来删除它。

jquery

5
推荐指数
1
解决办法
2604
查看次数

使用rspec测试rails引擎生成器

我创建了一个简单的宝石,包括一个安装生成器,生成器工作正常,但现在我想用rspec测试它,我发现这个 宝石,并尝试测试我的生成器,我的规范代码是:

require 'genspec'
require 'rosalie'

describe :install_generator do

  it "should generate model" do
    subject.should generate("message.rb")
  end
end
Run Code Online (Sandbox Code Playgroud)

rosalie是may gem的名字,现在当我运行它时出现错误:/stuff/work/my_projects/rosalie/lib/rosalie/engine.rb:2:in`':未初始化的常量Rosalie :: Rails(NameError)

我的engine.rb代码是:

module Rosalie
  class Engine < Rails::Engine

    initializer "rosalie.models.messageable" do
      ActiveSupport.on_load(:active_record) do
        include Rosalie::Models::Messageable
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决这个问题?

rubygems rspec ruby-on-rails

5
推荐指数
1
解决办法
1161
查看次数

从表格参数中获取数据

我是铁杆和红宝石的新手.我尝试制作一个简单的项目并遇到这个问题.我有一个视图,其中有一些文本字段,当我按下提交按钮时,在我的控制器中我需要这个字段中的值作为字符串,我试试这种方式params[:field1],但值的格式为{"field1"=>"some_value "},它不是一个字符串,我有它的问题.我该如何解决?

UP:查看代码

<%= form_tag :action=>:login_user do %>
    <div class="field">
        <h2>Login</h2>
        <%= text_field "field1", "field1" %>
    </div>

    <div class="field">
        <h2>Password</h2>
        <%= password_field "field2", "field2" %>
    </div>

    <div class="actions">
        <%= submit_tag "Login" %>
    </div>

    <% end %>
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails ruby-on-rails-3

4
推荐指数
2
解决办法
2万
查看次数