Person模特有一个name领域.
我想获得一系列所有人的名字.
如果有几个人有相同的名字,我希望它只在数组中出现一次.
我用这种方式构建了数组:
Person.all.map{ |p| p.name }.uniq
Run Code Online (Sandbox Code Playgroud)
有没有更好/更有效的方法来做到这一点?
我使用以下内容创建了reset_db.sh (with chmod +x):
#!/bin/bash
echo "*** Deleting the database ***"
rake db:drop --trace
echo "*** Creating the database ***"
rake db:create --trace
echo "*** Migrating the database ***"
rake db:migrate --trace
echo "*** Seeding the database ***"
rake db:seed --trace
echo "*** Done! ***"
Run Code Online (Sandbox Code Playgroud)
但是,当我运行时:
bash reset_db.sh
Run Code Online (Sandbox Code Playgroud)
我懂了:
*** Deleting the database ***
*** Creating the database ***
*** Migrating the database ***
*** Seeding the database ***
*** Done! ***
Run Code Online (Sandbox Code Playgroud)
但rake没有执行命令。
任何想法为什么?
奖金问题:
我应该怎么做才能运行 …
给出3个数字:DD,MM,YYYY,知道他们是否结合法定日期的最简单方法是什么?
例子:
14, 05, 2011 => Legal
29, 02, 2011 => Illegal
29, 02, 2012 => Legal
35, 11, 1989 => Illegal
14, 18, 2011 => Illegal
14, 00, 2011 => Illegal
00, 11, 1979 => Illegal
31, 11, 1979 => Illegal
Run Code Online (Sandbox Code Playgroud) 在我的Rails 3应用程序中,用户使用Ajax向论坛添加了一条新消息:
<%= form_tag("/forum/add_new_message", :remote => true) do %>
<%= text_area_tag("new_message_area") %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
这是我的控制器代码:
def index
@messages = Message.all
end
def add_new_message
Message.create(:text => params[:new_message_area], ...)
redirect_to(:action => 'index')
end
Run Code Online (Sandbox Code Playgroud)
问题是用户添加新消息后redirect_to(:action => 'index')执行,但页面没有刷新,即我没有看到新消息.
为什么?
在我的Rails 3应用程序中,用户可以在论坛中编写消息/帖子.
我想向用户显示"Top Writes"表,例如:
Alex - 14% (i.e. 14% of forum's content was written by Alex)
Greg - 13%
Natalie - 10%
Rachel - 8%
...
Run Code Online (Sandbox Code Playgroud)
您是否会在数据库中的每条消息中存储字符数(可能不包括标点符号)以及其他消息详细信息(并在编辑消息时更新它)?
您是否会存储每个用户写入的字符数以及其他用户详细信息(并在用户添加/删除/更新消息时更新此数字)?
你会存储数据库中的总字符数(即所有数字的总和2.?
您是否会存储将要显示的百分比(并相应地更新它们)?
用户可以拥有多条消息:
class User < ActiveRecord::Base
has_many :messages, :foreign_key => "publisher_id"
end
Run Code Online (Sandbox Code Playgroud)
为了获得最新的消息时间,我做了:
class User < ActiveRecord::Base
def last_message_time
last_message = messages.max{ |m1, m2| m1.created_at <=> m2.created_at }
last_message ? last_message.created_at : nil
end
end
Run Code Online (Sandbox Code Playgroud)
出于某种原因,我确信有更好的方法来做到这一点.
你会怎么做?
我想找到所有SongWriter与之maiden_name相等的my_maiden_name?
注意: my_maiden_name可能是nil
我试过了:
SongWriter.where("maiden_name = ?", my_maiden_name)
Run Code Online (Sandbox Code Playgroud)
它的工作原理除外my_maiden_name = nil.
何时my_maiden_name = nil,生成的查询是:
SELECT `song_writers`.* FROM `song_writers` WHERE (maiden_name = NULL)
Run Code Online (Sandbox Code Playgroud)
而不是:
SELECT `song_writers`.* FROM `song_writers` WHERE maiden_name IS NULL
Run Code Online (Sandbox Code Playgroud)
如何概括活动记录查询以包含案例my_maiden_name = nil?
我在 Windows 7 上使用 VirtualBox 运行 Ubuntu。
当我启动“localhost:3000”(在我运行之后rails s)时,出现以下错误:
无法通过 socket '/var/run/mysqld/mysqld.sock' 连接到本地 MySQL 服务器 (2)
我在Ubuntu上安装了XAMPP,所以我的MySQL安装似乎是在这里:/opt/lampp/var/mysql
(mysql.sock有)
我应该如何将我的 rails 应用程序连接到这个 MySQL 安装?
看下面的例子,它看起来Math.floor(x)相当于x | 0, for x >= 0。这是真的吗?如果是,为什么?(或者是如何x | 0计算的?)
x = -2.9; console.log(Math.floor(x) + ", " + (x | 0)); // -3, -2
x = -2.3; console.log(Math.floor(x) + ", " + (x | 0)); // -3, -2
x = -2; console.log(Math.floor(x) + ", " + (x | 0)); // -2, -2
x = -0.5; console.log(Math.floor(x) + ", " + (x | 0)); // -1, 0
x = 0; console.log(Math.floor(x) + ", " + …Run Code Online (Sandbox Code Playgroud) 我正在构建一个滑动益智游戏:
从这个初始位置开始,我想把这个谜题改组,比如100步.
我希望每次都能以不同方式改组拼图.
这可能意味着Random.initialSeed每次我需要使用不同的号码进行呼叫,这意味着我需要使用类似当前时间的内容.
不幸的是,我找不到如何获得当前时间.
在每个给定的状态中,我都列出了可能的动作.例如,在上面的初始位置:[MoveRight, MoveDown]
所以,基本上,我的问题是:如何在给定的List中获取随机元素?
share-elm的例子将不胜感激.