我在表中有一个列日期:
create_table "test", :force => true do |t|
t.date "day"
end
Run Code Online (Sandbox Code Playgroud)
我想将当前日期设置为此列的默认值.我尝试如下:
create_table "test", :force => true do |t|
t.date "day", :default => Date.today
end
Run Code Online (Sandbox Code Playgroud)
但默认总是2月1日,所以如果我明天创造新纪录,那一天仍然是2月1日(预计是2月2日)
谢谢你的回复!
注意:我在rails 3中使用sqlite
我在helpers/application_helper.rb文件中有测试方法:
def test
concat("Hello world")
end
Run Code Online (Sandbox Code Playgroud)
然后,在index.html.erb中我调用:
Blah
<% test %>
Run Code Online (Sandbox Code Playgroud)
浏览器显示:
布拉赫你好世界
这通常是,但如果我改变
<%= test %>
Run Code Online (Sandbox Code Playgroud)
浏览器显示:
Blah你好worldBlah你好世界
它复制了所有页面.我不知道为什么?他们之间有什么区别?谢谢你的帮助!
我正在使用rails 3.1.3.我想使用js.erb文件,如下步骤:
1.在posts控制器中创建测试操作:
def test
respond_to do |format|
format.js
end
end
Run Code Online (Sandbox Code Playgroud)
2.在routes.rb中定义此操作:
resource :posts do
collection do
get 'test'
end
end
Run Code Online (Sandbox Code Playgroud)
3.创建test.js.erb文件:
$('#abc').append('<h1>something</h1>');
Run Code Online (Sandbox Code Playgroud)
4.在index.html.erb文件中:
<div id='abc'></div>
<%= link_to "Test", test_posts_path, :remote => true %>
Run Code Online (Sandbox Code Playgroud)
但是,我运行并单击以测试链接,它转到带有URL的空白页面,http://localhost:3000/posts/test日志服务器是:
Started GET "/posts/test" for 127.0.0.1 at Sat Feb 11 18:04:36 +0700 2012
Processing by PostsController#test as HTML
Run Code Online (Sandbox Code Playgroud)
因此,服务器不作为JS处理,test.js.erb文件中的jQuery不会被执行.你能解释为什么在控制器中我将服务器进程作为HTML来定义respond_to format.js吗?
我假设项目中的所有响应都定义为format.html所以我的测试操作无法响应JS?如果正确,我可以改变吗?
非常感谢你
更新:在assets/javascripts/application.js中需要使用的行:
//= require jquery
//= require jquery_ujs
Run Code Online (Sandbox Code Playgroud)
然后它工作.