小编ben*_*ben的帖子

在 Ruby on Rails 应用程序中,在哪里放置视图的重复显示代码?

我有一个注释模型,它可以包含图像链接附件(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

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

使用Ruby日期对象时,我的Ruby on Rails控制台输出和Firebug控制台输出之间的差异是什么?

任何人都可以解释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)

ruby ruby-on-rails date

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

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

sqlite3数据库中的字符串/文本存储限制

我在我的sqlite3数据库中的一个模型中有一个字符串类型的注释字段,但我意识到我需要存储比字符串允许的更多文本.

我刚刚运行了一个迁移,将字段的类型从字符串更改为文本.看看我的数据库,它说现在是类型text(255),而在它之前varchar(255).

255是什么意思?这是一个角色限制吗?如果是这样,我会遇到与以前相同的存储问题吗?我该如何解决这个问题?

这是我用来更改字段类型的迁移

change_column(:posts, :note, :text)
Run Code Online (Sandbox Code Playgroud)

sqlite ruby-on-rails

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

如何修改Ruby类?

我需要在Ruby 1.9.2中向DateTime添加一个getlocal方法,根据本页的建议.我该怎么做呢?谢谢阅读

ruby

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

尝试在Rails 3中使用新的Active Record Query Interface时出错

我正在尝试使用的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)

我究竟做错了什么?谢谢阅读.

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

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

如何修复这个从 Twitter URL 中提取推文 ID 的正则表达式?

我正在尝试编写一个正则表达式,它将从 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)

我怎样才能写出在任何一种情况下都可以使用的程序?

ruby regex

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

如何在我的表单中创建第二个按钮,而不是在按下后运行提交代码?

我有一个表单,带有提交按钮:

<% 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)

当我单击按钮时,警报会出现,但随后会运行提交代码.在运行自己的代码后,如何让第二个按钮不运行提交代码?谢谢阅读.

html forms button

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

如何更改此Ruby正则表达式还包括下划线?

目前我正在使用此行来获取字符串并仅从中提取字母:

string.scan(/[a-zA-Z]/).to_s
Run Code Online (Sandbox Code Playgroud)

如何修改它以便还包括下划线字符"_"?谢谢阅读.

ruby regex

0
推荐指数
2
解决办法
94
查看次数

如何使用二级字符串数组对这个哈希数组进行排序?

我有一系列哈希,看起来像这样:

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哈希的格式错误.纠正了.

ruby ruby-on-rails

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

可以包含多个数字的字符串 - 如何提取最长的数字?

我有一个字符串

  • 包含至少一个数字
  • 可以包含多个数字

一些例子是:

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)

我怎样才能做到这一点?

ruby regex

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