我正在使用Ruby on Rails 3,我想知道什么类型的返回将具有以下代码:
@user.destroy
Run Code Online (Sandbox Code Playgroud)
我需要这样来处理成功和错误的案例,如下所示:
if @user.destroy
puts "True"
else
puts "false"
end
Run Code Online (Sandbox Code Playgroud)
可能吗?如果是这样,怎么样?
我正在使用Ruby on Rails 3.1,我想将我的网站徽标(即通过新资产管道处理的图像)添加到电子邮件中.
如果在我的邮件程序视图文件中,我说明以下内容:
<% # Note: '@root_url' is my application hostname (eg: http://www.mysite.com) %>
<%= link_to image_tag( "#{@root_url.to_s}/images/logo.png"), @root_url.to_s %>
Run Code Online (Sandbox Code Playgroud)
它不能在生产模式下工作(也就是说,我无法显示徽标图像),因为我认为资产管道使用指纹识别技术,而在收到的电子邮件中却没有.检查电子邮件中的HTML徽标元素我得到如下内容:
<img src="http://www.mysitecom/images/logo.png"> # without Fingerprinting
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
在我的production.rb文件中,我有以下注释掉的代码:
# Enable serving of images, stylesheets, and javascripts from an asset server
# config.action_controller.asset_host = "http://assets.example.com"
Run Code Online (Sandbox Code Playgroud) ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 asset-pipeline
如果在模型文件中我只有这个代码:
class Users < ActiveRecord::Base
end
Run Code Online (Sandbox Code Playgroud)
这意味着什么?是否可以访问与模型相关的所有属性?
我如何才能设置"attr_accessible" 没有允许访问的任何字段为这种模式?
我正在使用Ruby on Rails 3,我想知道*在函数参数附近是否存在运算符,并了解其在其他场景中的用法.
示例场景(此方法来自Ruby on Rails 3框架):
def find(*args)
return to_a.find { |*block_args| yield(*block_args) } if block_given?
options = args.extract_options!
if options.present?
apply_finder_options(options).find(*args)
else
case args.first
when :first, :last, :all
send(args.first)
else
find_with_ids(*args)
end
end
end
Run Code Online (Sandbox Code Playgroud) 我正在使用Ruby on Rails 3.2.13,我想删除相应哈希值为空的哈希键.也就是说,如果我有以下哈希
{ :a => 0, :b => 1, :c => true, :d => "", :e => " ", :f => nil }
Run Code Online (Sandbox Code Playgroud)
然后产生的哈希应该是(注意:0并且true不被视为空白)
{ :a => 0, :b => 1, :c => true }
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
在Ruby on Rails中,您可以使用以下语法从数据库中查找记录:
<model_name>.find_by_<field_name>()
Run Code Online (Sandbox Code Playgroud)
例如:User.find_by_email('test@test.test'),User.find_by_id(1),...
前一段时间,如果我没有错,我会在某处读到你可以明确禁用"查找"操作的缓存,但我不记得是怎么回事.
有人可以帮我记住吗?
我正在使用Ruby on Rails 3,我想cookies.signed在Rack中间件中使用该方法.我需要这个,因为我想直接在中间件中验证用户,而不是before_filter在application_controller.rb文件中使用.
例如,如果我以这种方式在控制器中使用该方法:
cookies.signed[:user_id']
Run Code Online (Sandbox Code Playgroud)
我明白了
---
- 1 # This is the id of the current signed in user
- a64ee3asdtjhcc7b35fcb280956be00ba27f94d48dfe4291c06db7d57577d5893 # This is the cookie salt
Run Code Online (Sandbox Code Playgroud)
但如果我在这个方式的Rack中间件(同一个应用程序)中使用它:
request = Rack::Request.new(env)
request.cookies.signed[:user_id']
Run Code Online (Sandbox Code Playgroud)
我明白了
NoMethodError
undefined method `signed' for #<Hash:0x00000103333d40>
Run Code Online (Sandbox Code Playgroud)
那么,我怎样才能在中间件中使用该方法呢?如何获取用户ID以便我可以对其进行身份验证?
也许我必须包含\ extend,例如,ActionDispatch ...如果是这样,怎么样?
我正在使用Ruby on Rails 3,我想在HTML电子邮件中禁用电子邮件地址链接.
例如,如果在电子邮件中我发送了一些原始HTML
Hi, you email is: <br/>
test@email.com
Run Code Online (Sandbox Code Playgroud)
Gmail会自动检测这是一个电子邮件地址并将其更改为
Hi, you email is: <br/>
<a target="_blank" href="mailto:test@email.com">test@email.com</a>
Run Code Online (Sandbox Code Playgroud)
我想有这个输出
# Text without the 'mailto:' link
Hi, you email is:
test@email.com
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我正在运行Ruby on Rails 3,我想渲染一个show.html.erb传递局部变量的template().
在RAILS_ROOT/views/users/show.html.erb我有
Name: <%= @user.name %>
Surname: <%= @user.surname %>
Run Code Online (Sandbox Code Playgroud)
我也有一个页面控制器来处理页面中和application_controller.rb的istance @current_user.一个页面被调用user,所以RAILS_ROOT/views/pages/user.html.erb我有
<%= render :template => "users/show", :locals => { :user => @current_user } %>
Run Code Online (Sandbox Code Playgroud)
上面的代码不起作用(我得到这个错误RuntimeError in Pages#user, Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id:)但这有效:
<%= render :template => "users/show", :locals => { :user => @user = @current_user } %>
Run Code Online (Sandbox Code Playgroud)
我认为这不是 …
我正在使用Ruby on Rails 3,我想覆盖(可能在模型文件中)as_json或to_json方法,以便在respond_to不包含某些信息的情况下进行HTTP请求.
在我的帐户模型中,我有
def as_json(options = {})
super(
:except => [
:password
]
)
end
Run Code Online (Sandbox Code Playgroud)
在我的控制器中我有
format.json {
render :json => @account, :status => 200
}
Run Code Online (Sandbox Code Playgroud)
例如,当我提出请求时,/account/1.json我还要回到密码属性,出于安全考虑,我不想要.
那么,如何防止包含指定信息?
我能做到这一点并且有效
format.json {
render :json => @account.to_json(:except => [:password]), :status => 200
}
Run Code Online (Sandbox Code Playgroud)
但我需要重构.