小编Pla*_*Ton的帖子

Rails中的XML Builder:"错误的参数数量"错误,我无法追踪

铁路新手,我花了好几个小时试图寻找一个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)

xml ruby-on-rails

2
推荐指数
1
解决办法
1019
查看次数

Rails:Form_for没有相应数据库列的字段

我正在尝试使用包含:terms_and_conditions(with validates_presence_of)复选框的rails form_for .terms_and_conditions尚未在相应的数据库表中声明为列.

目前,当我提交表单并尝试创建新模型时MyModel.new(params[:mymodel]),我得到一个*'unknown属性:terms_and_conditions'*错误.

所以,只是想知道:我如何运行为列创建一个字段 - 并在其上运行验证 - 而不将该字段插入数据库?

非常感谢...

activerecord ruby-on-rails

2
推荐指数
1
解决办法
3408
查看次数

Rails/Formtastic新手:为引用的"选择"框设置显示字段

formtastic用户在这里.

我有一段感情 user has_many clients

formtastic,如果我做的事情,如

f.input :employer
Run Code Online (Sandbox Code Playgroud)

它返回所有雇主对象引用的选择框.我想改为显示(姓氏,名字).我确信这很简单,但我无法弄明白该怎么做..任何帮助表示赞赏.

ruby-on-rails formtastic

2
推荐指数
1
解决办法
1398
查看次数

Rails 3:在哪里存储模型的共享方法?

我有一个方法"random_password",我希望能够从我的rails 3项目中的多个模型访问.我只是想知道在哪里存储它以及如何提供对它的访问的约定.任何帮助赞赏.

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

2
推荐指数
1
解决办法
351
查看次数

Rails:从模型中获取具有唯一性验证的属性列表

只是想知道是否可以返回具有唯一性验证的所有属性的列表?例如,我有一个模型Person - 我想返回'Person'中具有唯一性约束的属性列表.有任何想法吗?

validation ruby-on-rails activemodel

2
推荐指数
1
解决办法
612
查看次数

如何组织通用代码

刚刚开始使用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)

来自一个公共图书馆.有没有其他人似乎这样做的原因?

javascript coffeescript backbone.js

2
推荐指数
1
解决办法
204
查看次数

在super()之前调用子属性?

我主要使用动态语言 - 我刚刚开始使用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)

java

2
推荐指数
1
解决办法
208
查看次数

Rails:nil的未定义方法`strftime':NilClass,但是value(没有strftime)返回OK

我对(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)

activerecord ruby-on-rails strftime ruby-on-rails-3

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

ActiveRecord:计算关联

我有两个表有一个has_one < - > belongs_to关系:'user'和'account'.(帐户必须有用户,但用户不需要任何帐户).

我想做的是返回所有没有帐户的用户......我在优雅地做这件事时遇到了一些麻烦.有一个简单的方法吗?

非常感谢...

activerecord ruby-on-rails

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

jQuery:选择自定义html标签(具有特定值)

我有一个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并不是特别先进,所以我可能错过了一些简单的东西.任何建议赞赏

jquery jquery-selectors

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