我有一个注释模型,它可以包含图像链接附件(linktype =“image”或一些文本(linktype =“text))。当我显示注释时,显示方法根据链接类型而变化。一个例子是:
<% @notes.each do |q| %>
<h2 class="title"><%= q.name %></h2>
<% if q.linktype == "image"%>
<img src="<%= q.link %>" />
<% elsif q.linktype == "text"%>
<%= q.text %>
<% end %>
<% emd %>
Run Code Online (Sandbox Code Playgroud)
我必须在站点中的几个不同视图中显示注释,因此我不想多次重复查看代码,而是希望将其放在一个位置并从不同的视图中引用它。
我应该在应用程序助手中执行此操作吗?如果是这样,我是否将显示代码(如上面的代码)直接放入助手中,还是有更好的方法?谢谢阅读。
任何人都可以解释Ruby on Rails控制台输出和Firebug控制台输出之间的区别吗?
event_controller.rb
def list_events
@days[1][:date] = (((Date.new(2010, 8, 6)) + 1).to_s)
end
Run Code Online (Sandbox Code Playgroud)
list_events.html.erb
<% @days.each_with_index do |day, i| %>
<% p day[:date] %>; //RoR console
console.log(<%= day[:date] %>); //Firebug console
<% end %>
Run Code Online (Sandbox Code Playgroud)
Ruby on Rails控制台输出:
"2010-08-07"
Run Code Online (Sandbox Code Playgroud)
Firebug控制台输出:
1995
Run Code Online (Sandbox Code Playgroud) 我在我的sqlite3数据库中的一个模型中有一个字符串类型的注释字段,但我意识到我需要存储比字符串允许的更多文本.
我刚刚运行了一个迁移,将字段的类型从字符串更改为文本.看看我的数据库,它说现在是类型text(255)
,而在它之前varchar(255)
.
255是什么意思?这是一个角色限制吗?如果是这样,我会遇到与以前相同的存储问题吗?我该如何解决这个问题?
这是我用来更改字段类型的迁移
change_column(:posts, :note, :text)
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用新的Rails 3 Active Record Query Interface.
我的旧式查询是
my_notes = Note.find(:all, :conditions => { :user_id => current_user.id, :date => p[:date] }, :order => "date ASC, created_at ASC")
Run Code Online (Sandbox Code Playgroud)
在新风格中,我认为它将是:
my_notes = Note.find_all_by_user_id_and_date(current_user.id, p[:date]).order('date ASC, created_at ASC')
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误:
NoMethodError in NotesController#play
undefined method `order' for #<Array:0x00000103d23c38>
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?谢谢阅读.
我正在尝试编写一个正则表达式,它将从 Twitter URL 中提取推文 ID。
我有这个,当 Twitter 用户名中有一个数字时它可以工作:
'.*?\\d+.*?(\\d+)'
ruby-1.9.2-p0 > Regexp.new('.*?\\d+.*?(\\d+)',Regexp::IGNORECASE).match('https://twitter.com/#!/sportsguy33/status/41257488166686720')[1]
=> "41257488166686720"
ruby-1.9.2-p0 > Regexp.new('.*?\\d+.*?(\\d+)',Regexp::IGNORECASE).match('http://twitter.com/#!/dailythunder/status/41382006113841153')[1]
=> "3"
Run Code Online (Sandbox Code Playgroud)
还有这个,当 Twitter 用户名中没有数字时有效
'.*?(\\d+)'
ruby-1.9.2-p0 > Regexp.new('.*?(\\d+)',Regexp::IGNORECASE).match('https://twitter.com/#!/sportsguy33/status/41257488166686720')[1]
=> "33"
ruby-1.9.2-p0 > Regexp.new('.*?(\\d+)',Regexp::IGNORECASE).match('http://twitter.com/#!/dailythunder/status/41382006113841153')[1]
=> "41382006113841153"
Run Code Online (Sandbox Code Playgroud)
我怎样才能写出在任何一种情况下都可以使用的程序?
我有一个表单,带有提交按钮:
<% form_for(@personalentry) do |f| %>
<%= f.submit 'Create' %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
HTML输出
<form action="/personalentries" class="new_personalentry" id="new_personalentry" method="post">
<input id="personalentry_submit" name="commit" type="submit" value="Create" />
</form>
Run Code Online (Sandbox Code Playgroud)
我想添加第二个按钮,以执行与表单提交无关的其他代码.所以我这样做了:
<head>
<script type="text/javascript">
function addEndDateCalendar(){
alert("test");
}
</script>
</head>
<body>
<form action="/personalentries" class="new_personalentry" id="new_personalentry" method="post">
<button name="addEndDateButton" onClick="addEndDateCalendar()">End date?</button>
<input id="personalentry_submit" name="commit" type="submit" value="Create" />
</form>
</body>
Run Code Online (Sandbox Code Playgroud)
当我单击按钮时,警报会出现,但随后会运行提交代码.在运行自己的代码后,如何让第二个按钮不运行提交代码?谢谢阅读.
目前我正在使用此行来获取字符串并仅从中提取字母:
string.scan(/[a-zA-Z]/).to_s
Run Code Online (Sandbox Code Playgroud)
如何修改它以便还包括下划线字符"_"?谢谢阅读.
我有一系列哈希,看起来像这样:
user_array = [<#Hashie::Mash id="1" name="Ben">, <#Hashie::Mash id="2" name="Scott">, <#Hashie::Mash id="3" name="David">]
Run Code Online (Sandbox Code Playgroud)
我还有一个包含从外部源提取的ID的数组:
freq_array = ["1","2","2","3","2","3"]
Run Code Online (Sandbox Code Playgroud)
我需要使用freq_array
订购user_array
,以便其ID最多的用户freq_array
首先在user_array
.所以基于以上freq_array
,user_array
将是
user_array = [<#Hashie::Mash id="2" name="Scott">, <#Hashie::Mash id="3" name="David">, <#Hashie::Mash id="1" name="Ben">]
Run Code Online (Sandbox Code Playgroud)
做这个的最好方式是什么?谢谢阅读.
编辑:我得到了user_array哈希的格式错误.纠正了.
我有一个字符串
一些例子是:
https://www.facebook.com/permalink.php?story_fbid=53199604568&id=218700384
https://www.facebook.com/username_13/posts/101505775425651120
https://www.facebook.com/username/posts/101505775425699820
Run Code Online (Sandbox Code Playgroud)
我需要一种从字符串中提取最长数字的方法.所以对于上面的3个字符串,它会提取
53199604568
101505775425651120
101505775425699820
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?