铁路新手,我花了好几个小时试图寻找一个bug.任何帮助非常感谢.
我正在尝试创建一个rails页面,这样如果用户输入/ info/who_bought/1页面输出HTML,并且如果他们输入/info/who_bought/1.xml,页面将返回一个XML文件.(简而言之,我正在使用'带有Rails的敏捷Web开发'一书中的第11章)
HTML格式的输出工作正常,但如果我输入xml我一直得到'错误的参数数量(1为0)'错误页面.下载实际的电子书并直接复制/粘贴所有代码; 仍面临同样的问题.谷歌没有提到任何代码错误.
下面的代码和完整堆栈跟踪.如果有人有任何想法,我会非常感激.简而言之 - 什么可能导致xml.builder返回'1 for 0 arguments'错误?
非常感谢,行李
# app/controllers/info_controller.rb
class InfoController < ApplicationController
def who_bought
@product = Product.find(params[:id])
@orders = @product.orders
respond_to do |format|
format.html
format.xml {render :layout => false }
end
end
protected
def authorize
end
end
# app/views/info/who_bought.xml.builder
xml.order_list(:for_product => @product.title) do
for o in @orders
xml.order do
xml.name(o.name)
xml.email(o.email)
end
end
end
# app/models/product.rb
class Product < ActiveRecord::Base
has_many :orders, :through => :line_items
has_many :line_items
validates_presence_of :title, :description, :image_url
validates_numericality_of :price
validates_uniqueness_of …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用包含:terms_and_conditions(with validates_presence_of)复选框的rails form_for .terms_and_conditions尚未在相应的数据库表中声明为列.
目前,当我提交表单并尝试创建新模型时MyModel.new(params[:mymodel]),我得到一个*'unknown属性:terms_and_conditions'*错误.
所以,只是想知道:我如何运行为列创建一个字段 - 并在其上运行验证 - 而不将该字段插入数据库?
非常感谢...
新formtastic用户在这里.
我有一段感情 user has_many clients
在formtastic,如果我做的事情,如
f.input :employer
Run Code Online (Sandbox Code Playgroud)
它返回所有雇主对象引用的选择框.我想改为显示(姓氏,名字).我确信这很简单,但我无法弄明白该怎么做..任何帮助表示赞赏.
我有一个方法"random_password",我希望能够从我的rails 3项目中的多个模型访问.我只是想知道在哪里存储它以及如何提供对它的访问的约定.任何帮助赞赏.
只是想知道是否可以返回具有唯一性验证的所有属性的列表?例如,我有一个模型Person - 我想返回'Person'中具有唯一性约束的属性列表.有任何想法吗?
刚刚开始使用backbone.js,我注意到的一件事是我的许多模型,集合和视图共享一些非常相似的方法.我想重构它们并从提取的位置(/ lib?)调用它们.我去搜索文档和/或示例,并对我发现的很少(特别是没有)感到惊讶.那么,有几个问题:
任何想法都赞赏 - 提前感谢.
(编辑)示例添加:
从视图中获取此代码.(不可否认,它太短暂实际上值得重构,但它的简单性使它成为一个简洁的例子)
destroy: () ->
@model.destroy()
@remove()
return false
Run Code Online (Sandbox Code Playgroud)
假设我想将其重构为:
destroy: () ->
restful_destroy_method(this)
Run Code Online (Sandbox Code Playgroud)
然后称之为:
restful_destroy_method: (view) ->
view.model.destroy()
view.remove()
return false
Run Code Online (Sandbox Code Playgroud)
来自一个公共图书馆.有没有其他人似乎这样做的原因?
我主要使用动态语言 - 我刚刚开始使用Java,我正在努力使用静态模式.
根据我的理解,子类的构造函数中的第一个调用必须是它的父类.这很好,但是我需要在子节点的构造函数中引用子节点中设置实例变量...当然,这会创建一个catch-22.(需要在调用parent之前在child中设置变量,但需要在child中设置变量之前调用parent).
我敢肯定我打破了某种静态语言模式或法律......我只是不确定是哪一种,或者如何重新设计它.任何帮助赞赏.剥下来的例子如下:
Class Race {
public Race(Venue event_venue) {
greeting();
}
public void greeting() {
String event_greeting = String.format("The next event is: %s", getName());
System.out.println(event_greeting);
}
public String getName() {
return getClass().getSimpleName();
}
}
Class Sprint extends Race {
private int event_distance;
public Sprint(Venue event_venue, int distance) {
// super has to be the first call
super(event_venue);
// but I need to set event_distance to reference getName() in parent constructor
setDistance(distance);
}
public String getName() {
String …Run Code Online (Sandbox Code Playgroud) 我对(rails 3)activerecord查询有一个奇怪的问题.
如果我向视图(下面)提交查询#1(下面),一切正常...但是如果我提交查询#2(下面),我得到"未定义的方法`strftime'为nil:NilClass"
...但是,如果我从查询#2中删除strtime字符串,它会返回未格式化的时间.
"专业特色"是一个很好的经历:通过表; 我认为这与它有关...但我无法弄清楚是什么.
知道发生了什么事吗?所有建议赞赏:
查询#1(工作正常)
@professionals = Professional.all(:include => :user, :conditions => ["users.first_name = ? AND users.last_name = ?", params[:name][:first], params[:name][:last]])
Run Code Online (Sandbox Code Playgroud)
查询#2(休息时间)
@professionals = Professional.all(:include => [:user, :professional_specialties], :conditions => ["professional_specialties.profession_type_id = ?", params[:profession_type]] )
Run Code Online (Sandbox Code Playgroud)
视图
<% @professionals.each do |p| %>
<tr>
<td><%= link_to("%s %s" % [p.user.first_name, p.user.last_name], p) %></td>
<td><%= p.business %></td>
<td><%= p.user.role.name %></td>
<td><%= p.user.created_at %></td>
<td><%= p.user.last_sign_in_at.strftime("%Y") %></td>
</tr>
<% end %>
Run Code Online (Sandbox Code Playgroud) 我有两个表有一个has_one < - > belongs_to关系:'user'和'account'.(帐户必须有用户,但用户不需要任何帐户).
我想做的是返回所有没有帐户的用户......我在优雅地做这件事时遇到了一些麻烦.有一个简单的方法吗?
非常感谢...
我有一个html页面,其中包含以下元素:
<input data-required-by="books magazines stationery">
Run Code Online (Sandbox Code Playgroud)
我想做的是选择jQuery中所有在'data-required-by'字段中有"books"的元素.我希望以下内容能起作用:
$("[data-required-by]~='books'")
Run Code Online (Sandbox Code Playgroud)
但它带回"语法错误,无法识别的表达式:='书籍'"
不可否认,我的jQuery并不是特别先进,所以我可能错过了一些简单的东西.任何建议赞赏
activerecord ×3
activemodel ×2
backbone.js ×1
coffeescript ×1
formtastic ×1
java ×1
javascript ×1
jquery ×1
strftime ×1
validation ×1
xml ×1