Tag: ruby on rail

如何在设计模型中使用嵌套属性

我有与使用Devise创建其他相关模型 (没有答案)相同的问题。 我已经覆盖了创建新用户的设计视图并添加了公司名称,我已将模型更改为使用accepts_nested_attributes_for 没有错误,但它没有添加嵌套记录 ,我没有可以修改请求的控制器。 我有以下(缩短以使其可读): 的routes.rb map.devise_for :users map.resources :users, :has_many => :companies user.rb has_many :companies accepts_nested_attributes_for :companies devise :registerable … etc company.rb belongs_to :user new.html.erb … registration_path(resource_name) do |f| %> … … 更新:我没有添加:company到User模型中的attr_accessible列表。

如何在Devise中自动记住用户记忆

我正在构建一个应用程序,我希望用户在他们的计算机上自动记住,而不需要“记住我”复选框。 我读到我可能要打电话给@user.remember_me! ,但不确定在哪里调用它,因为隐藏了Devise控制器。 我正在考虑在sign_in表单中添加一个隐藏的复选框字段,默认情况下标记了复选框,但我希望我能在控制器端执行此操作。 知道如何做到这一点? 谢谢!

用Devise登录后重定向

在使用Devise登录后,是否可以将用户重定向到不同的页面(基于角色)? 它似乎只重定向到routes.rb中定义的root:to => …页面 谢谢!

慢铁栈

当我跑 rails服务器 要么 耙-T 或者其他一些rails脚本,需要花费很多时间,大约1分钟。 确定这么慢的最佳方法是什么? 如何提高速度? Rails v是3.0.3运行ruby 1.9.2(RVM) – Linux

在私人商店文件夹中的rails 3.1中显示带有carrierwave的图像

我有一个rails 3.1应用程序,我正在添加carrierwave来存储图像。 但是我希望将这些图像存储在公共文件夹之外,因为只有在用户加载到应用程序中时才能访问这些图像。 所以我用初始化文件更改了carrerwave中的store_dir: CarrierWave.configure do |config| config.root = Rails.root end 我的载波上传器是这样的: class ImageUploader < CarrierWave::Uploader::Base … def store_dir "imagenes_expedientes/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" end 图像存储正确,如果我使用公用文件夹一切正常。 但是,当试图将事物移动到私人文件夹时,图像不会显示,当我尝试在新窗口中打开它时,我收到以下错误: Routing Error No route matches [GET] “/imagenes_expedientes/volunteer/avatar/15/avatar.jpg” 我试图通过控制器使用send_file传递文件,但不是加载页面我只得到下载的图像。 def show send_file “#{Rails.root}/imagenes_expedientes/avatar.jpg”, :type=>”application/jpg”, :x_sendfile=>true end 最后,图像在视图中显示如下: “Avatar”, :class => “avatar round”) if @volunteer.avatar? %> 这可能很容易解决,但由于我对Rails不熟悉,我不知道该怎么做。 我应该设置路线吗? 或者无论如何使用send_file方法显示图像? 谢谢! 回答 我设法使用x-sendfile显示图像,并按照clyfe的建议放置:disposition =>’inline’ 。 […]

使用用户名而不是电子邮件进行身份validation

我是Devise的新手,通过使用电子邮件地址作为身份validation密钥使其工作正常。 但是,我有一个需要用户名的用例,而我似乎无法让它工作。 我已经在users表中添加了一个字符串列“username”,将以下字段更改为:email到:登录表单中的用户名,并将devise.rb中的身份validation密钥更改为:username当我转到登录我遇到了这个提示:“请输入一个电子邮件地址”。 我究竟做错了什么? **new.html.erb** **User.rb** class User [:username] # Setup accessible (or protected) attributes for your model attr_accessible :email, :password, :password_confirmation, :remember_me, :username # attr_accessible :title, :body end **devise.rb** config.authentication_keys = [ :username ]

Rails路由:name而不是:id url参数

我有一个名为’公司’的控制器,而不是每个公司的url用以下表示:id我想让url使用他们的:名称如: url/company/microsoft而不是url/company/3 。 在我的控制器中我假设我会 def show @company = Company.find(params[:name]) end 由于url中没有任何其他参数,我希望rails能理解:name引用了我公司模型中的:name列。 我认为这里的魔法会在路线上,但我在这一点上陷入困​​境。

Rails延迟工作和图书馆课程

嘿,我们有一个库类(lib / Mixpanel)调用延迟作业,如下所示: class Mixpanel attr_accessor :options attr_accessor :event def track!() .. dj = send_later :access_api # also tried with self.send_later .. end def access_api .. end 问题是当我们运行rake jobs:work:我们得到以下错误: undefined method `access_api’ for # 知道为什么吗?

在迁移中指定自定义主键

我有一个数据结构: t.integer :userID t.string :apikey t.integer :characterID userID应该是主键(名称不重要,它可以默认为:id )。 但是,我不希望它是自动递增或其他任何东西,只需获取提供的值并将其写入数据库。 我如何调整迁移和模型以实现我想要的?

Rails Formtastic:将“data-”字段添加到选项标签

我有: form.input :duration, as: select, collection: {} 我需要: Rails不支持选项标记的HTML5数据属性。 Formtastic 建议为此创建一个辅助方法。 Formtastic自述文件描述了如何扩展输入标签。 但是,在select_input.rb中,我找不到任何会影响选项标签的方法。 那么,我该怎么做? 此外,我发现enhanced_select gem正是我所需要的,但我无法使其与formtastic一起工作。