如何生成javascript文件的绝对链接.
我假设应该有类似下面的那个(遗憾的是似乎没有):
javascript_url 'main' # -> 'http://localhost:3000/javascripts/main.js'
Run Code Online (Sandbox Code Playgroud)
代替:
javascript_path 'main' # -> '/javascripts/main.js'
Run Code Online (Sandbox Code Playgroud)
我需要绝对URL,因为该javascript文件将用于书签.
另外我需要相同的css文件.
谢谢,
德米特里.
我在这里开发一个简单的插件,而且这个目的正在发挥作用.除了我的助手.它是一个非常简单的帮助器,它只需要回显一个<span></span>以后的javascript解析.
问题是,它没有使html正确,它用html等效代码替换特殊字符.
我的插件初始化程序:
ActionView::Helpers.send :include, Test
Run Code Online (Sandbox Code Playgroud)
我的插件助手:
module Test
def only_for_testing
render(:text => "<span></span>")
end
end
Run Code Online (Sandbox Code Playgroud)
当我在视图中调用only_for_testing帮助器时,而不是渲染"<span></span>"它呈现" <span></span>"
我尝试删除渲染,只返回字符串,效果相同.我真的不想为此创建一个部分,因为它是一个非常非常简单的html,它不是用于布局,它只是用于解析.
知道我在这里做错了什么吗?
我正在研究PyroCMS项目,但由于缺乏完整的文档而出现问题.有谁知道我在哪里可以找到核心帮助者列表,例如{pyro:navigation:links}?
我对Rails相对较新,有点惊讶这不是一个可配置的行为......至少没有一个我能找到的?!?我本来以为的形式99%的人会从空白受益于所有被修剪string和text领域?!?猜猜我错了......
无论如何,我正在寻找一种干燥的方法来从Rails 3应用程序中的表单字段(类型:string&:text)中删除所有空格.
视图有自动引用(包括?)并可用于每个视图的助手......但模型似乎没有这样的东西?!?或者他们呢?
所以目前我做的是首先 需要的,然后 包括 whitespace_helper(又名WhitespaceHelper).但这对我来说似乎并不是很干,但它有效......
ClassName.rb:
require 'whitespace_helper'
class ClassName < ActiveRecord::Base
include WhitespaceHelper
before_validation :strip_blanks
...
protected
def strip_blanks
self.attributeA.strip!
self.attributeB.strip!
...
end
Run Code Online (Sandbox Code Playgroud)
LIB/whitespace_helper.rb:
module WhitespaceHelper
def strip_whitespace
self.attributes.each_pair do |key, value|
self[key] = value.strip if value.respond_to?('strip')
end
end
Run Code Online (Sandbox Code Playgroud)
我想我正在寻找单个(DRY)方法(类?)来放置某个(lib/?),它将获取一个params(或属性)列表,并.strip! 从每个属性中删除空白(?),而不是具体命名.
我正在使用嵌套属性,但我的视图中未加载字段.有人知道我错过了什么吗?
Rails 3.1,Ruby 1.9.2
型号1:
class Traditions::Material < ActiveRecord::Base
has_one :material_asset, :dependent => :destroy
validates_presence_of :title
accepts_nested_attributes_for :material_asset
end
Run Code Online (Sandbox Code Playgroud)
型号2:
class Traditions::MaterialAsset < ActiveRecord::Base
belongs_to :material
has_attached_file :asset
validates_attachment_presence :asset
end
Run Code Online (Sandbox Code Playgroud)
查看(HAML):
= form_for @material, :html => {:class => 'form', :multipart => true} do |f|
= errors_for @material
.field
= f.label :title
= f.text_field :title
.field
= f.label :description
= f.text_area :description, :rows => 5
.field
= f.fields_for :material_asset do |ma|
= ma.label :asset
= ma.file_field :asset
.buttonrow
= f.submit …Run Code Online (Sandbox Code Playgroud) haml ruby-on-rails helpers ruby-on-rails-3 ruby-on-rails-3.1
我正在尝试使用以下代码在我的页面上生成链接
%h2= link_to '{{ label }}', product_path('{{ id }}'.html_safe)
Run Code Online (Sandbox Code Playgroud)
这实际上是一个较大的HTML块的一部分,它将作为一个javascript模板,我稍后将解析使用Underscore.js以填充{{ id }}和{{ label }}占位符.所以我想让rails输出一些东西给我的HTML
/ products/{{id}}
然而,它一直在逃避空间和小礼物,并给予我
<a href="/products/%7B%7B%20id%20%7D%7D">{{ label }}</a>
Run Code Online (Sandbox Code Playgroud)
所以url_helper正在逃避我的字符串,即使我不想要它.我怎么能强迫它不这样做?
我试过了
%h2= link_to '{{ label }}', product_path('{{ id }}'.html_safe)
%h2= link_to '{{ label }}', product_path(raw '{{ id }}')
%h2= link_to '{{ label }}', raw(product_path('{{ id }}'))
Run Code Online (Sandbox Code Playgroud)
和
%h2=raw( link_to '{{ label }}', product_path('{{ id }}'.html_safe))
Run Code Online (Sandbox Code Playgroud)
但它们都不起作用
编辑:
使用它的另一种方法是使用rails console,
include ActionController::UrlWriter
ruby-1.9.2-p0 :010 > product_path '{{ id }}'.html_safe
=> "/products/%7B%7B%20id%20%7D%7D"
Run Code Online (Sandbox Code Playgroud)
任何帮助表示感谢...谢谢
谢谢
我有一个索引视图,其中有几行用于具有多个属性的项目.我想用ajax更新items属性的内容,因此我需要一个唯一的dom id.有辅助方法吗?我现在正在做的是:
<span id="<%= item.id.to_s + "_on_storage"%>">
Run Code Online (Sandbox Code Playgroud)
最好,菲尔
我有一个rails应用程序,在表单中,我有一个表单选择(下拉列表).例如,用户可以从1,2,3,4,5中进行选择
比方说,我将这些值存储在数组中作为实例变量,如:
@formlist = [1,2,3,4,5]
我怎样才能简单地将数组放入表单选择助手中,而不是单独列出每个项目.目前我的代码是:
Run Code Online (Sandbox Code Playgroud)<tr> <th><%= f.label(:heat_level, "Heat Level") %></th> <td><%= f.select(:heat_level,{ 1 => "1", 2 => "2", 3 => "3", 4 => "4", 5 => "5"}) %></td> </tr>
我正在尝试学习NodeJS和Express.我使用node-localstorage包来访问localstorage.这在直接在这样的函数中使用代码时有效
路线/ social.js
exports.index = function(req, res)
{
if (typeof localStorage === "undefined" || localStorage === null)
{
var LocalStorage = require('node-localstorage').LocalStorage;
localStorage = new LocalStorage('./scratch');
}
localStorage.setItem('myFirstKey', 'myFirstValue');
console.log(localStorage.getItem('myFirstKey'));
res.render('social/index', {title: "Start"});
}
Run Code Online (Sandbox Code Playgroud)
但是,在访问localstorage时,我不想在所有其他函数中反复编写此代码.我希望能够注册一个我可以访问的辅助函数
var localStorage = helpers.getLocalStorage
Run Code Online (Sandbox Code Playgroud)
或类似的东西.
我怎样才能在NodeJS中做到这一点?我见过关于app.locals的一些事情?但是如何在路线中访问app对象?
我正在尝试创建一个函数,它将通过其ID检索订单.出于某种原因,我无法使WooCommerce全局功能get_order起作用.我正在id向该函数传递一个有效的订单并尝试将其打印出来以验证它是否正常工作.该功能已放入我的functions.php文件中.
function getWC_order_details($id){
global $woocommerce;
$order = get_order( $id );
print "<pre>";
print_r($order);
print "</pre>";
}
Run Code Online (Sandbox Code Playgroud)
我测试了没有问题的函数回显其他数据.
helpers ×10
php ×2
ruby ×2
codeigniter ×1
dry ×1
escaping ×1
express ×1
haml ×1
html ×1
node.js ×1
pyrocms ×1
routes ×1
url ×1
validation ×1
views ×1
whitespace ×1
woocommerce ×1
wordpress ×1