我想在我的网站的标题中添加一个登录表单.我使用Rails 3.2.8和最新的Devise.在app/views/devise/sessions/new.html.erb文件中创建登录表单:
<%= form_for(resource, :as => resource_name, :url => session_path(resource_name), :html => {:class => 'main'}) do |f| %>
<div><%= f.label :login %> <%= f.text_field :login, :placeholder => 'Enter username' %></div>
<div><%= f.label :password %> <%= f.password_field :password, :placeholder => 'Enter password' %></div>
<% if devise_mapping.rememberable? -%>
<div><%= f.check_box :remember_me %> <%= f.label :remember_me %></div>
<% end -%>
<%= f.submit "Go" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
如果我尝试复制该代码并将其放入我的代码中application.html.erb,我会收到有关上面引用的资源变量的错误:
undefined local variable or method `resource' for #<#<Class:0x3cb62c8>:0x3c73b00>
Run Code Online (Sandbox Code Playgroud)
那么我可以使用普通的rails形式/users/sign_in作为动作吗?如何在登录后告诉设计重定向到哪里?
login ruby-on-rails devise ruby-on-rails-3 ruby-on-rails-3.2
我已经使用他们的gem在我的Rails项目中安装了基础并运行以下两个命令:
rails g foundation:install
rails g foundation:layout
Run Code Online (Sandbox Code Playgroud)
一切似乎都很好用,很好的CSS标记和网格布局.但是,我的单选按钮和复选框看起来没什么不同.描述单选按钮和复选框的页面显示:"一旦初始化(它们指的jquery.foundation.forms.js是自动包含在每个Rails页面中),它将查找任何复选框,单选按钮或选择元素,并将其替换为Foundation提供的自定义标记风格."
但我的单选按钮和复选框看起来很标准,而不像上面示例页面上的漂亮按钮和复选框.他们建议display: none;在输入上设置一些自定义标记,以避免闪光从正常到基础按钮/复选框.这没有用.我甚至从他们的示例网页复制并粘贴到我的网页!仍然没有运气!我错过了什么吗?
我正在使用Rails 3.2.8
ruby-on-rails css-frameworks ruby-on-rails-3 ruby-on-rails-3.2 zurb-foundation
我的rails开发日志中包含了大量的这些行:
Started GET "/assets/services.css?body=1" for 127.0.0.1 at 2012-11-26 02:27:49 -0800
Served asset /services.css - 304 Not Modified (0ms)
[2012-11-26 02:27:49] WARN Could not determine content-length of response body. Set content-length of the response or set Response#chunked = true
Run Code Online (Sandbox Code Playgroud)
我想我需要弄清楚如何让rails确定内容长度或设置response.chunked某处(不确定究竟是什么)以避免最后一行.但是,绝大多数时候我不得不浪费时间搜索这些数据库请求,如下所示:
Started GET "/points" for 127.0.0.1 at 2012-11-26 02:27:54 -0800
Processing by PointsController#index as HTML
User Load (0.3ms) SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1
PointsLog Load (0.1ms) SELECT "points_logs".* FROM "points_logs" WHERE "points_logs"."user_id" = 1
Rendered points/index.html.erb within …Run Code Online (Sandbox Code Playgroud) logging development-environment ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2
有没有一种方法through可以在belongs_to关系中使用该选项?选项中没有提及关于Emirates_to的Rails文档through,为什么不呢?我想做以下事情:
class Lesson < ActiveRecord::Base
attr_accessible :name, :lesson_group_id
belongs_to :lesson_group
belongs_to :level, through: :lesson_group
end
class LessonGroup < ActiveRecord::Base
attr_accessible :name, :level_id
belongs_to :level
has_many :lessons
end
class Level < ActiveRecord::Base
attr_accessible :number
has_many :lesson_groups
end
Run Code Online (Sandbox Code Playgroud)
然后我可以做类似的事情Lesson.first.level。使用最新的稳定Rails(截至目前为3.2.9)。
activerecord ruby-on-rails belongs-to ruby-on-rails-3 ruby-on-rails-3.2
Rails将所有DateTimes 存储在UTC时区中.我需要在他们的浏览器报告他们所在的时区中向用户显示该时间.有一种简单的方法吗?
使用最新的Rails(3.2.13).
timezone datetime ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2
我想制作一个简单的网页,其中JavaScript游戏看起来像iPhone上的应用程序.我知道我可以将书签保存到主屏幕,看起来像一个应用程序,我知道我可以在我的HTML中为缩略图设置apple-itouch-image.但是当你点击主屏幕上的应用程序时,很明显这只是一个网页.如何像Google阅读器一样摆脱顶部的URL和搜索栏?如果您稍后向上滚动,可以看到该栏.
单击网页时是否可以直接进入全屏模式?
我不是在寻找像PhoneGap这样的东西,我只想制作一个简单的网页,其中JavaScript看起来像一个应用程序,我不希望它实际上是一个应用程序.
我需要从我的数据库中获取所有非员工的用户:
class User < ActiveRecord::Base
has_one :staff
def is_staff?
staff != nil
end
end
class Staff < ActiveRecord::Base
attr_accessible :user_id
belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)
所以我可以用代码来做到这一点:
User.all.select {|user| not user.is_staff? }
Run Code Online (Sandbox Code Playgroud)
这似乎可行,但我希望在数据库中有这个逻辑,并且在尝试以这种方式排序时,由于某种原因,我在使用 Heroku 的生产中遇到错误(使用 sqlite 的开发不会给我这个错误):
NAME_SORT = ->(a, b) {
if a.first_name == b.first_name
a.last_name <=> b.last_name
else
a.first_name <=> b.first_name
end
}
User.all.select {|user| not user.is_staff? }.sort &NAME_SORT
Run Code Online (Sandbox Code Playgroud)
由于某种原因我得到的错误是:
ArgumentError: comparison of User with User failed
Run Code Online (Sandbox Code Playgroud)
无论如何,如果我想获得所有员工用户,这似乎很简单:
User.joins(:staff)
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法来吸引非员工的用户?也许是这样的?
User.not_joins(:staff)
Run Code Online (Sandbox Code Playgroud)
实际上我需要用户不是员工或管理员:
User.not_joins(:staff, :admin)
Run Code Online (Sandbox Code Playgroud) activerecord ruby-on-rails ruby-on-rails-3.2 ruby-on-rails-4 rails-activerecord
我的数据库中的表中有2列,1是日期,1是时间.我需要使用ActiveRecord将它们组合成DateTime对象.什么是最好的方式?
1.9.3-p194 :053 > date.class
=> Date
1.9.3-p194 :054 > time.class
=> Time
1.9.3-p194 :055 > date.to_time_in_current_zone
=> Wed, 04 Sep 2013 00:00:00 PDT -07:00
1.9.3-p194 :056 > date.to_time_in_current_zone + time
TypeError: not an integer
Run Code Online (Sandbox Code Playgroud)
我可以添加时间的各个字段,这似乎工作:
1.9.3-p194 :062 > date.to_time_in_current_zone + time.hour.hours + time.min.minutes + time.sec.seconds
=> Wed, 04 Sep 2013 12:30:00 PDT -07:00
Run Code Online (Sandbox Code Playgroud)
那不包括毫秒,没有Time毫秒?如果我不能有毫秒,那么不是世界末日,但是有更好的方法吗?
activerecord ruby-on-rails ruby-on-rails-3.2 ruby-on-rails-4 rails-activerecord
我知道我可以在Rails文件夹中的Helper类中放置一个帮助器方法helper.然后该方法可以在任何视图中使用.我知道我可以在ApplicationController类中放置方法,并且该方法可以在任何控制器中使用.
放置控制器和视图中经常使用的方法的适当位置在哪里?
ruby-on-rails helpermethods ruby-on-rails-3 ruby-on-rails-3.2 ruby-on-rails-4