小编Sim*_*tsa的帖子

如果条件在Haml中为真,则追加类

如果 post.published?

.post
  / Post stuff
Run Code Online (Sandbox Code Playgroud)

除此以外

.post.gray
  / Post stuff
Run Code Online (Sandbox Code Playgroud)

我用rails helper实现了它,看起来很难看.

= content_tag :div, :class => "post" + (" gray" unless post.published?).to_s do
  / Post stuff
Run Code Online (Sandbox Code Playgroud)

第二种变体:

= content_tag :div, :class => "post" + (post.published? ? "" : " gray") do
  / Post stuff
Run Code Online (Sandbox Code Playgroud)

是否有更简单和特定于haml的方式?

UPD.特定于Haml,但仍然不简单:

%div{:class => "post" + (" gray" unless post.published?).to_s}
  / Post stuff
Run Code Online (Sandbox Code Playgroud)

ruby haml

150
推荐指数
5
解决办法
7万
查看次数

在鱼类启动时添加$ PATH的相对路径

我想在fish启动时将./bin目录(相对于当前的shell目录)添加到$ PATH.请注意,这fish是一个shell.

echo $PATH
set PATH ./bin $PATH
echo $PATH
Run Code Online (Sandbox Code Playgroud)

如果我将这些行放在~/.config/fish/config.fishshell中,则会回显相同的路径集合.正确添加绝对路径.

如果我打开shell并set PATH ./bin $PATH在其中键入相同内容bin,则会成功添加包含它的某个目录.但是,当没有bin内部当前目录时,它会显示错误.

set: Could not add component ./bin to PATH.
set: Value too large to be stored in data type
Run Code Online (Sandbox Code Playgroud)

我在OS X Lion上运行鱼1.23.1.

macos shell environment-variables fish

34
推荐指数
5
解决办法
2万
查看次数

将Rails中的主键更改为字符串

所以我有两个模型,State和Acquisition.State has_many收购.我觉得51个记录的自动增量整数主键是相当愚蠢的.所以我将State的模型改为PK(State是两个字母的缩写;我没有在任何地方存储实际的州名:

class State < ActiveRecord::Base  
  self.primary_key = "state"  
  has_many :acquisition_histories  
end
Run Code Online (Sandbox Code Playgroud)

问题是当我创建我的Acquisition模型时,它创建了外键列state_id作为整数.更具体地说,脚本/生成的迁移确实:

class CreateAcquisitions < ActiveRecord::Migration  
  def self.up  
    create_table :acquisitions do |t|  
      t.date :date  
      t.string :category  
      t.text :notes  
      t.references :state  
      t.timestamps  
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我假设t.references数据类型将其设置为int.问题是我的Acquisition类上的create方法试图将状态缩写放入表获取的state_id字段中(是的,它在数据库上称为state_id,即使它表示:迁移脚本中的状态).该方法不会失败,但它会在state_id字段中输入0并且记录进入以太.

ruby activerecord ruby-on-rails

26
推荐指数
5
解决办法
3万
查看次数

如何在Ruby中获取字符串匹配regexp的特定部分?

我有一个字符串Unnecessary:12357927251data,我需要在冒号和数字后选择所有数据.我会用Regexp来做.

string.scan(/:\d+.+$/)
Run Code Online (Sandbox Code Playgroud)

这会给我:12357927251data,但我可以只选择所需的信息.+(data)吗?

ruby

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

如何从CodeIgniter中的模型加载帮助器?

我想在模型中加载一些帮助器.这该怎么做?试图使用:

${get_parent_class($this)}->load->helper ('text');
Run Code Online (Sandbox Code Playgroud)

但仍然出现错误

致命错误:在非对象上调用成员函数helper()

php codeigniter class

7
推荐指数
2
解决办法
2万
查看次数

HTML默认链接颜色

我想用CSS将一些元素的颜色设置为默认链接颜色.

<a href="/">That color</a> is the same as <span style="color: link;">that</span>.
Run Code Online (Sandbox Code Playgroud)

有办法吗?本网站不会更改默认浏览器的链接颜色.

html css

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

浏览器不区分通过AJAX获得的部分HTML和整页

我有一个可以在URL /产品上访问的页面.当我在浏览器中访问它时,它会在布局中以整页进行响应.以下是请求标头和响应正文的简化示例:

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

<layout>
<products />
</layout>
Run Code Online (Sandbox Code Playgroud)

当用户进行一些搜索时,javascript通过AJAX更新结果.结果是在没有布局的情况下呈现的,因为渲染需要时间,而我无论如何都不需要它:

Accept: */*;q=0.5, text/javascript, application/javascript, application/ecmascript, application/x-ecmascript
X-Requested-With: XMLHttpRequest

<products />
Run Code Online (Sandbox Code Playgroud)

所以,这个工作正常,直到我添加了缓存Cache-Control: private, max-age=3600.最初我虽然我会添加Vary: X-Requested-With标题,浏览器会区分这两个响应.但是,当我通过AJAX获取/ products然后访问浏览器中的/ products时,它会显示部分AJAX响应.

有没有一种简单的方法可以解决这个问题?

PS我正在使用Ruby on Rails和jQuery,如果这很重要的话.

ajax xmlhttprequest browser-cache http-headers

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

如何制作多语言C#控制台应用程序?

我想在Microsoft Visual C#2010 Express中创建支持几种语言的控制台应用程序:它将以所选语言显示消息.什么是最简单方便的国际化准备方式?

c# multilingual internationalization visual-studio-2010

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

JQuery的.如何将输入值加载到数组?

我有多个输入字段.

<input type='text' size='10' name='firstname' id='firstname' />
<input type='text' size='20' name='lastname' id='lastname' />
<input type='password' size='5' name='password' id='password' />
Run Code Online (Sandbox Code Playgroud)

我想用jQuery将它们的所有值都放到一个数组中.像这个.

1 => 'Barack',
2 => 'Obama',
3 => '123456'
Run Code Online (Sandbox Code Playgroud)

现有方法val()从第一次匹配返回值.

$('#firstname,#lastname,#password').val(); //returns only first name
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

如何获取试剂中某个项目的索引

当我在 Reagent 中迭代 vector 时,像这样:

(for [item ["rattata" "pidgey" "spearow"]]
  [:li item])])
Run Code Online (Sandbox Code Playgroud)

我想获得特定项目的索引 - 像这样:

  [:li item index]
Run Code Online (Sandbox Code Playgroud)

我不是在问一般的 clojure 'for',因为另一种迭代 vector 的方法也会让我满意。

clojure hiccup clojurescript reagent

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