Tag: ruby on rails 3.2

如何在成功提交AJAX表单后重定向(Rails 3.2)

假设您有一个编辑表单:remote => true 。 你的控制器方法看起来像 def update @article = Article.find(params[:id]) respond_to do |format| if @article.update_attributes(params[:article]) format.html { redirect_to @article} format.js { render :js => “window.location.replace(‘#{article_path(@article)}’);”} else format.html { render :action => “edit” } # Render update.js.erb which replaces the body of the form format.js {} end end end 在Rails 3.2.1中成功更新文章的最佳方法是什么? 原始的JS解决方案似乎有点邋,但我确实喜欢这样的事实,即它执行与format.html版本相同的function。 我更喜欢不使用RJS的解决方案( 如果它甚至适用于Rails 3.2 ?)

即使在急切加载之后,belongs_to关联也会单独加载

我有以下协会 class Picture < ActiveRecord::Base belongs_to :user end class User < ActiveRecord::Base has_many :pictures end 在我的PicturesController中,我渴望加载用户 class PicturesController < ApplicationController def index @pictures = Picture.includes(:user).all end end 在我看来,我正在显示每个图片的用户名 -@pictures.each do |picture| %tr %td= picture.name %td= picture.user.name 现在的问题是,即使我急于加载用户,我也会看到在视图中显示用户名时触发了各个查询。 我有大约1000张图片记录,我为此请求触发了1000多个查询。 我究竟做错了什么? 如何避免用户的个别查询?

Liquid Ruby模板引擎可以处理Rails表单吗?

我一直在寻找模板引擎,以便用户轻松在线创建课程和练习。 似乎Liquid是最常用于Rails的。 Liquid用户可以轻松创建rails表单吗? 通常我在ERB中创建表单: prohibited this lesson from being saved: lots of fields Rails会自动插入CSRF保护内容。 我可以用Liquid做同样的事吗? 我可以在Liquid中创建filter,标签和/或块来模拟Rails表单标签吗?

Rails 3.2 f.file_field导致路由错误

在轨道3.2.12和3.2.11上测试。 在另一个rails 3.2.11项目中我没有f.file_field这个问题,但是在当前的一个我做的并且找不到这种奇怪行为的原因,所以这是我的问题。 我对更新操作有一个奇怪的问题。 以下是代码的相关部分: 路线: get “signup” => “users#new”, :as => “signup” get “profile” => “users#profile”, :as => “profile” resources :users do member do get :activate end end 控制器: def update @user = User.find(params[:id]) if @user.update_attributes(params[:user]) redirect_to user_path(@user), :notice => t(‘users_controller.update.updated’) else render :edit end end haml中的forms(简化但具有相同的行为): = form_for @user do |f| .field = […]

Rspec,Paperclip,Fabrication,有效对象,无需保存到文件系统

我有一个带有paperclip 3.2的rails 3.2 app,我有一个带有所需回形针附件(拇指)的模型。 如何在不将文件保存到文件系统或S3的情况下创建有效对象。 我目前拥有的是下面的内容,但每次运行时都会保存到文件系统中。 有没有办法在没有每次上传的情况下拥有有效的剧集? 模型: class Episode include Mongoid::Document include Mongoid::Paperclip has_mongoid_attached_file :thumb validates_attachment_presence :thumb end 规格: require ‘spec_helper’ describe Episode do it “has a valid factory” do Fabricate.build(:episode).should be_valid end end 制造商: Fabricator(:episode) do thumb { File.open(File.join(Rails.root, ‘spec’, ‘fabricators’, ‘assets’, ‘thumb.jpg’))} end

Rails:在动作邮件中更改默认发件人

我在我的rails应用程序中使用动作邮件发送电子邮件。 但它只允许一个默认发件人。 这是我的UserMailer类: class UserMailer “example@example.com” def welcome_email(user, order) @user = user @order = order mail(:to => user.email, :subject => “Your Order”) end def signup_email(user) @user = user mail(:to => user.email, :subject => “Thank you.”) end def invite_confirm(curuser,usemail,post) @greeting = “Hi” @user = curuser @post = post mail(:to => user.email, :subject => “Hello”) end end […]

从辅助方法渲染部分

是否可以使用辅助方法渲染部分,您还可以从调用辅助方法的视图中传递局部变量? 例如,当我直接在视图中包含此代码时,它会正确呈现部分代码: “add_round”, :locals => { :f => f } %> 然后我将它移动到辅助方法: def addRound render :partial => “add_round”, :locals => { :f => f } end 然后我再次从视图中调用它: 这不适用于代码中包含的:locals => {:f => f}。 它返回了这个错误:未定义的局部变量或方法`f’。 但是,addRound方法确实使用以下内容呈现内容: def addRound render :partial => “add_round” end 以这种方式编写它允许我渲染不需要传递局部变量的部分(例如纯文本字符串)。 但是我如何才能使用:locals => {:f => f}? 还有其他方法可以写出来吗? 非常感谢。

Rails 3.2 – haml vs. erb。 haml更快吗? (2012年2月)

我正在研究一个项目,我仍然在考虑使用HAML(漂亮的代码,较小的视图文件)而不是经典的ERB模板。 我担心为什么我没有这样做是产生观点的速度 – 我读了一篇文章/基准,而且几乎总是HAML比ERB慢 – 但事实是,文章是2 – 3年。 所以我的问题是,在2012年初,如何看待这两个模板系统的比较?

在我开始在线阅读之前,Sessions对我有意义

我从阅读Sessions vs Cookies中收集的主要内容是,Cookie存储在客户端,会话存储在服务器端。 如果会话存储在服务器端,那么服务器如何知道哪个客户端是他们的? 显然,必须在客户端进行某些操作。 每当我使用自动滚动用户身份validation时,我的users数据库表中都有一个session_token列。 然后,这个模块倾向于为我提供便利: module SessionsHelper def current_user User.find_by_session_token(session[:session_token]) end def current_user=(user) @current_user = user session[:session_token] = user.session_token end def logout_current_user! current_user.reset_session_token! session[:session_token] = nil end def require_current_user! redirect_to new_session_url if current_user.nil? end def require_no_current_user! redirect_to user_url(current_user) unless current_user.nil? end end 我相信存储在服务器端的会话,它们意味着每个用户都有session_token 。 此外,会话散列必须在客户端。 如果没有,它在哪里? 请注意,我正在存储用户的session_token,如下所示: session[:session_token] = user.session_token 。 最后,如果我认为会话是在客户端,那么它是如何保持安全的? 最后,这是否与在其他框架(如Django,php框架等)上处理会话的方式相同? […]

rake测试和错误:日志写入失败。 “\ xE2”从ASCII-8BIT到UTF-8

当我运行rake test ,我每次都会得到错误行。 log writing failed. “\xE2” from ASCII-8BIT to UTF-8 请指导一下。 如何删除此错误。