标签: ruby-on-rails-4

如何在Rails 4中使用问题

默认的Rails 4项目生成器现在在控制器和模型下创建目录"Concer".我找到了一些关于如何使用路由问题的解释,但没有关于控制器或模型的解释.

我很确定它与社区当前的"DCI趋势"有关,并且想尝试一下.

问题是,我应该如何使用此功能,是否有关于如何定义命名/类层次结构以使其工作的约定?如何在模型或控制器中包含问题?

ruby-on-rails dci ruby-on-rails-4

619
推荐指数
6
解决办法
22万
查看次数

Rails 4:如何使用带有turbo-links的$(document).ready()

我试图组织JS文件"rails way"时,在我的Rails 4应用程序中遇到了一个问题.他们以前分散在不同的观点中.我将它们组织成单独的文件,并使用资产管道进行编译.但是,我刚刚了解到,当打开turbo-linked时,jQuery的"就绪"事件不会触发后续点击.第一次加载页面时它可以工作.但是当你点击链接时,内部的任何内容ready( function($) {都不会被执行(因为页面实际上并没有再次加载).好解释:这里.

所以我的问题是:在启用turbo-links时,确保jQuery事件正常工作的正确方法是什么?您是否将脚本包装在特定于Rails的侦听器中?或者也许rails有一些魔力让它变得不必要?文档对于它应该如何工作有点模糊,特别是关于通过像application.js这样的清单加载多个文件.

javascript jquery asset-pipeline turbolinks ruby-on-rails-4

417
推荐指数
9
解决办法
17万
查看次数

Rails 4:可用数据类型列表

我在哪里可以找到可以在Ruby on Rails 4中使用的数据类型列表?如

  • text
  • string
  • integer
  • float
  • date

我一直在学习新的,我很想有一个我可以轻易参考的清单.

ruby ruby-on-rails ruby-on-rails-4 rails-activerecord

395
推荐指数
5
解决办法
28万
查看次数

Rails I18n验证弃用警告

我刚刚更新到rails 4.0.2并且我收到此警告:

[已弃用] I18n.enforce_available_locales将来默认为true.如果您确实想跳过语言环境的验证,可以设置I18n.enforce_available_locales = false以避免此消息.

将其设置为false是否存在任何安全问题?

ruby ruby-on-rails deprecated rails-i18n ruby-on-rails-4

386
推荐指数
4
解决办法
6万
查看次数

Rails update_attributes没有保存?

是否有一个替代update_attributes不保存记录?

所以我可以这样做:

@car = Car.new(:make => 'GMC')
#other processing
@car.update_attributes(:model => 'Sierra', :year => "2012", :looks => "Super Sexy, wanna make love to it")
#other processing
@car.save
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我知道我可以@car.model = 'Sierra',但我想在一条线上更新它们.

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

370
推荐指数
4
解决办法
13万
查看次数

Rails 4:before_filter vs. before_action

在扶手> 4.0.0发电机,创建CRUD操作before_action没有before_filter.它似乎做同样的事情.那么这两者之间的区别是什么?

ruby ruby-on-rails crud ruby-on-rails-4

329
推荐指数
3
解决办法
15万
查看次数

在Rails 4中添加引用列迁移

用户有很多上传.我想在uploads引用该表的表中添加一列user.迁移应该是什么样的?

这就是我所拥有的.我不确定是否应该使用(1):user_id, :int或(2):user, :references.我甚至不确定(2)是否有效.只是试图以"轨道"的方式做到这一点.

class AddUserToUploads < ActiveRecord::Migration
  def change
    add_column :uploads, :user_id, :integer
  end
end
Run Code Online (Sandbox Code Playgroud)

除Rails之外的相关问题3. Rails 3迁移:添加引用列?

ruby-on-rails rails-migrations ruby-on-rails-4 rails-activerecord

294
推荐指数
7
解决办法
24万
查看次数

如何在Rails 4中使用attr_accessible?

attr_accessible 似乎不再适用于我的模型.

在Rails 4中允许批量分配的方法是什么?

ruby-on-rails ruby-on-rails-4

257
推荐指数
3
解决办法
14万
查看次数

在Rails 4中自动加载lib文件

我在初始化程序中使用以下行在/lib开发期间在我的目录中自动加载代码:

配置/初始化/ custom.rb:

RELOAD_LIBS = Dir[Rails.root + 'lib/**/*.rb'] if Rails.env.development?
Run Code Online (Sandbox Code Playgroud)

(来自Rails 3 Quicktip:在开发模式下自动重新加载lib文件夹)

它运行良好,但在生产中使用效率太低 - 而不是在每个请求上加载库,我只想在启动时加载它们.同一篇博客还有另一篇文章描述了如何做到这一点:

配置/ application.rb中:

# Custom directories with classes and modules you want to be autoloadable.
config.autoload_paths += %W(#{config.root}/lib)
config.autoload_paths += Dir["#{config.root}/lib/**/"]
Run Code Online (Sandbox Code Playgroud)

但是,当我切换到它时,即使在开发中,我在尝试使用lib函数时也会得到NoM​​ethodErrors.

我的一个lib文件的示例:

LIB/extensions.rb中:

Time.class_eval do
  def self.milli_stamp
    Time.now.strftime('%Y%m%d%H%M%S%L').to_i
  end
end
Run Code Online (Sandbox Code Playgroud)

调用Time.milli_stamp将抛出NoMethodError

我意识到其他人已经在SO上回答了类似的问题,但他们似乎都在处理命名约定和其他我之前不必担心的问题 - 我的lib类已经为每个请求加载工作了,我只是想改变它到per- 启动加载.这样做的正确方法是什么?

ruby-on-rails ruby-on-rails-4

226
推荐指数
3
解决办法
13万
查看次数

使用Rails 4的Paperclip :: Errors :: MissingRequiredValidatorError

当我尝试使用带有我的rails blogging app的paperclip上传时,我收到此错误.当它说"MissingRequiredValidatorError"时,不知道它是指什么我认为通过更新post_params并给它:image它会没事,因为创建和更新都使用post_params

Paperclip::Errors::MissingRequiredValidatorError in PostsController#create
Paperclip::Errors::MissingRequiredValidatorError

Extracted source (around line #30):

def create
  @post = Post.new(post_params)
Run Code Online (Sandbox Code Playgroud)

这是我的posts_controller.rb

def update
  @post = Post.find(params[:id])

  if @post.update(post_params)
    redirect_to action: :show, id: @post.id
  else
    render 'edit'
  end
end

def new
  @post = Post.new
end

def create
  @post = Post.new(post_params)

  if @post.save
    redirect_to action: :show, id: @post.id
  else
    render 'new'
  end
end
#...

private

def post_params
  params.require(:post).permit(:title, :text, :image)
end    
Run Code Online (Sandbox Code Playgroud)

这是我的帖子助手

module PostsHelper
  def post_params
    params.require(:post).permit(:title, :body, :tag_list, :image)
  end
end
Run Code Online (Sandbox Code Playgroud)

如果我能补充额外的材料来帮助你,请告诉我.

ruby ruby-on-rails paperclip ruby-on-rails-4

224
推荐指数
3
解决办法
6万
查看次数