我正在使用 devise (1.5.3) 和 Warden (1.1.1),用户登录/注册后不需要更新 session_id
https://github.com/hassox/warden/blob/master/lib/warden/proxy.rb#L160
if opts[:store] != false && opts[:event] != :fetch
options = env[ENV_SESSION_OPTIONS]
options[:renew] = true if options
session_serializer.store(user, scope)
end
Run Code Online (Sandbox Code Playgroud)
转储选项:
options {:path=>"/", :domain=>nil, :expire_after=>nil, :secure=>false, :httponly=>true, :defer=>false, :renew=>false, :coder=># Rack::Session::Cookie::Base64::Marshal:0x00000004f50a10>, id=> "56d54b1b9820ee044151fdb4fdcb89db"}
Run Code Online (Sandbox Code Playgroud)
如何配置 devise/warden 不将 options[:renew] 设置为 true ?
我有控制器
app/controllers/posts.rb
Run Code Online (Sandbox Code Playgroud)
我如何使用管理员布局
admin/views/layouts/application.haml
Run Code Online (Sandbox Code Playgroud)
?
我有资源生物和视图和添加新生物的链接是:
= link_to "Add new bio", [:new, :admin, :bio]
Run Code Online (Sandbox Code Playgroud)
如果我把资源 :bio 放在这样的范围内:
namespace :admin do
scope "/:bio_type", :defaults => {:bio_type => "company"} do
resources :bios
end
end
Run Code Online (Sandbox Code Playgroud)
这不起作用
= link_to "Add new bio", [:new, :admin, :bio, { bio_type: params[:bio_type] }]
Run Code Online (Sandbox Code Playgroud)
我的问题是如何将范围参数添加到 url_for 助手?默认情况下,rails 可以执行此操作吗?
ps new_admin_bio_path({bio_type: params[:bio_type]}) 工作正常,但只是好奇