我尝试使用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给它
我使用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) 我正在尝试使用where方法从我的表中选择所有非空的记录
MyModel.where(:some_id => !nil)
Run Code Online (Sandbox Code Playgroud)
但它不起作用,还有其他解决办法吗?
我试着做一个简单的桌子
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)
有谁能够帮我?
我有很多元素,id它们的属性类似于element_num,其中num是元素的数量。我想要它,以便当我单击这些元素之一时,它会被删除。
第一个问题是如何使用选择器来查找这些元素(我想我在这里需要像正则表达式这样的东西)。
第二个问题是如何获取被点击的元素id来删除它。
我创建了一个简单的宝石,包括一个安装生成器,生成器工作正常,但现在我想用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)
任何人都可以帮我解决这个问题?
我是铁杆和红宝石的新手.我尝试制作一个简单的项目并遇到这个问题.我有一个视图,其中有一些文本字段,当我按下提交按钮时,在我的控制器中我需要这个字段中的值作为字符串,我试试这种方式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)