Tag: 动作视图

在Rails中缺少请求的模板时呈现默认模板

对于插件,我想将以下function入侵到Rails: 当(部分)模板不存在(无论格式如何)时,我想渲染默认模板。 所以说如果users / index.html.erb不存在(或其他格式),我会调用动作’users / index’,应该呈现’default / index.html.erb’。 同样,如果我将某个操作称为“位置/编辑”并且“locations / edit.html.erb”不存在,则应显示“default / edit.html.erb” 对于partials,如果我调用一个动作’locations / index’并且模板’locations / index.html.erb’调用不存在的部分’locations / _location’,它应该呈现’default / _object’ 解决方案是seek,允许我访问模板变量(例如@users,@ locations)和所请求路径的信息(例如用户/索引,位置/编辑)。 它也应该与偏见一起使用。 我想到了一些选项,我将在下面发布。 它们都不是完全令人满意的。

将块传递给rails3中的标签助手

我想用一些嵌套元素创建标签标签。 我正在使用标签帮助器并尝试将内部html作为块传递,但生成的HTML看起来并不像我预期的那样。 ERB: Span element Inner span HTML输出: Span element Inner span Span element Inner span 当我使用标记传递内部html时,输出应该是: ERB: Span element <% raw 'Inner span’ %> HTML输出: Span element Inner span 我想知道这是我的错误或ActionView标签助手中的错误。 对于其他助手,块传递工作正常。 谢谢,Michał

具有多个嵌套模型的Rails表单会导致无线电组出现问题

我遇到了包含单选按钮的嵌套模型表单的问题,当我有多个模型时,所有单选按钮都被视为在同一组中。 我的模型包含像这样的has_many关系: class Order < ActiveRecord::Base has_many :order_items accepts_nested_attributes_for :order_items end Class OrderItem < ActiveRecord::Base belongs_to :order end 然后我有一个部分使用创建OrderItem模型表单 并且在此表单中包含一组在for循环中创建的单选按钮 radio_button_tag “order[order_items_attributes][][colour_id]”, “#{colour.id}” 当只有一个子节点时,这样可以正常工作,但是当我插入多个子name=”order[order_items_attributes][][colour_id]”所有单选按钮都属于同一个组,因为它们都具有相同的属性name=”order[order_items_attributes][][colour_id]” 。 这都是在一个新的模型表单上,所以我不能使用数组索引( name=”order[order_items_attributes][0][colour_id]” )因为Rails expected Hash (got Array) for param ‘order_items_attributes’提供了expected Hash (got Array) for param ‘order_items_attributes’的错误expected Hash (got Array) for param ‘order_items_attributes’ 我是关于最后一部分的错误,错误是因为我混合了索引和非索引的名称属性。 添加索引值是解决这个问题的关键。 当只有一个嵌套模型存在时,以下是params[:order]哈希的内容: {“order_items_attributes”=> [{“size”=>”Small”, “colour_id”=>”4”], “first_name”=>”sdf”, “last_name”=>”sdf”, […]

如何使控制台中的视图缓存片段到期?

就像是 Rails.cache.delete(‘site_search_form’) 似乎没有用。 这可能吗? 谢谢。