Tag: ruby on rails 3

Rails3如何在命名范围内使用:params?

我正在尝试显示特定订单的里程碑列表。 (订单有许多里程碑。) 在我的订单模型中,我有这个: scope :open, lambda { joins(“join milestones on milestones.order_id = orders.id”). where(“order_id = ? AND milestone_status = ?”, :params[:order_id], true). group(“orders.id”) } 我遇到的问题是让当前的订单ID生效 – :params [:order_id]显然是错误的。 在我的路线中我有这个: resources :orders do resources :milestones end 我的url如下: http://127.0.0.1/orders/2/milestones 这怎么可能? 我已通过手动替换订单ID来测试范围。 – 编辑 – 根据下面的建议,我在里程碑控制器中添加了以下内容: @orders = Order.open( params[:order_id] ) 在我看来,我有这个: 但是我收到一个错误: wrong number of arguments (1 […]

需要指令 – 文件url

在Rails 3(Sprocket)中,有没有办法使用url将javascript文件加载到远程站点? 例如,我想使用require指令在.js文件中使用类似的东西, //= require http://example.com/remote_file.js

Ruby:Mail gem在邮件中添加60个字符后添加\ r \ n

我想将actionmailer_x509移植到Rails 3.为了做到这一点,我尝试使用签名电子邮件从大字符串创建Mail对象。 你可以在这一行看到这样的创作: https : //github.com/petRUShka/actionmailer_x509/blob/master/lib/actionmailer_x509.rb#L129 原始字符串( smime0 ): https : //gist.github.com/1d2c84cc2e255be010a6 已解决的邮件对象转储到文件( newm ): https : //gist.github.com/4682fe88e8dcfeca60b2 例如,您可以看到smime0的第26行与newm的第40行之间的差异。 在smime0 \r\n中,在每个64个字符之后设置,并且在每个60个字符之后设置newm \r\n 。 这种行为破坏了签名。 是否有可能改变这种行为? 我试图找出如何关闭它,但失败了。 对于这一点,可能还有其他一些解决方法。 PS Mail gem: https : //github.com/mikel/mail ,讨论x509和actionmailer的线程: 如何从Rails 3中的ActionMailer发送签名的电子邮件?

通过SSL发布UTF-8时,HEROKU上的“EOFError:文件结束”

我对heroku有一个奇怪的错误。 为了重现它,我必须在请求正文中使用任何UTF-8字符进行大(超过几KB)HTTPS POST。 这是一个例子: require “net/https” require “uri” #Accutally I’ve ecountered this bug while posting to another server url = URI.parse(“https://api.heroku.com/myapps”) #It’s Ukrainian ‘oiced velar plosive G’ letter payload = “ґ”*10000 request = Net::HTTP::Post.new(url.path) request.body = payload http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.read_timeout = 500 http.start {|http| http.request request } 在本地机器的irb上运行这样的脚本给了我: # ……这是预期的,但是在heroku雪松上,在’heroku […]

1)PasswordResets在请求密码重置时向用户发送电子邮件

我一直在尝试为忘记密码的用户添加密码重置。 用户点击忘记密码? 在注册页面上。 然后,用户键入他们的电子邮件并单击重置密码,这会创建一个令牌并发送一封电子邮件,其中包含重置密码的链接。 在大多数情况下,它只适用于电子邮箱是空白的或者只有6个随机字母/数字,但是当用户输入他的电子邮件并单击密码重置时它不起作用,它会显示错误消息: **Validation failed: Password can’t be blank Password cant be blank, password is too short(6 min)** 通过更改user.rb validation:password,presence:true,length:{minimum:6}validation:password_confirmation,presence:true 我有不同的错误,无论如何要从此重置密码表单中排除此validation app/models/user.rb:30:in `send_password_reset’ app/controllers/password_resets_controller.rb:7:in `create’ 在video275中我是如何测试的。 在11:20 失败/错误:click_button“重置密码”ActiveRecord :: RecordInvalid:validation失败:密码不能为空,密码太短(最少6个字符),密码确认不能为空 # ./app/models/user.rb:30:in `send_password_reset’ # ./app/controllers/password_resets_controller.rb:7:in `create’ # (eval):2:in `click_button’ # ./spec/requests/password_resets_spec.rb:9:in `block (2 levels) in ‘ 完成13.66秒95例,1次失败 这是一些正在使用的代码。 user.rb # == Schema Information […]

如何在测试操作时将值放入flash中

我正在尝试测试需要存储在flash中的值的操作。 def my_action if flash[:something].nil? redirect_to root_path if flash[:something] return end # Do some other stuff end 在我的测试中,我做了类似的事情: before(:each) do flash[:something] = “bob” end it “should do whatever I had commented out above” do get :my_action # Assert something end 我遇到的问题是flash在my_action中没有值。 我猜这是因为没有请求实际发生。 有没有办法为这样的测试设置闪存?

ruby rails – 重定向到原始请求url

这是我重定向到默认URL(myapp_url)的方法。 但我希望更改重定向以进行身份​​validation后用户输入的请求url。 我怎么做? 我在这里搜索了几个选项,比如:back。 但是没有去。 用户输入url,如果未经过身份validation,则会被重定向到登录页面,然后登录后,用户将被重定向到原始请求url。 def create user = User.Authenticate(params[:user_id], params[:password]) if user session[:user_id] = user.id redirect_to myapp_url, :notice => “Logged in!” else flash.now.alert = “Invalid email or password” render “new” end end

Rails3 SQL日志输出在一个单独的文件中

我希望将所有ActiveRecord SQL日志记录重定向到不同的文件中。 将它放在控制台或log / development.log中有点麻烦。 怎么做? 我很想将它放在log / development_sql.log文件中。 谢谢

如何在Rails 3中使用i18n作为我的错误页面?

我需要在我的public/404.html页面上使用I18n api 。 如果我添加到404.html页面: 我收到一条错误消息: Cannot use t(‘.page_were_looking’) shortcut because path is not available 如何在本页面使用I18nfunction?

如何更新Ruby on Rails 3中的多个列?

出于好奇,有没有办法说这个… user.update_column(:field1, true) user.update_column(:field2, true) …在Ruby on Rails中的一行中? 据我所知, update_columns方法不存在……