我想知道为什么有人应该在控制器中使用helper_method创建一个辅助方法,而不是创建帮助文件内部的"正常"方式.那有什么优点和缺点?
我已经在我的Web应用程序中配置了设计.我有以下工作流程的问题:
要访问管理面板,我需要登录.之后,我正常导航到我的网络应用程序的管理面板.当我单击logout时,它会将我重定向到根页面,这是我想要的行为.
奇怪的是,在这个页面中开始,在上面的操作之后,我点击了浏览器的后退按钮,它显示了我的缓存的最后一页.我的会话已被破坏,因为如果我点击刷新它重定向我并提示登录访问该页面,但我不希望能够看到浏览器的最后一个历史页面.
这怎么可能,我该怎么做才能防止它呢?它与浏览器缓存有关吗?解决此问题的唯一方法是从登录页面中删除缓存以防止此行为?我怎样才能做到这一点?
在rails 2.3.5中,您可以在routes.rb文件中执行以下操作:
map.root :controller => "pages", :action => "show", :id => 3
Run Code Online (Sandbox Code Playgroud)
在rails 3中,我没有找到任何方法来传递特定参数(例如在rails 2.3.5中使用:id => 3).
我知道我可以从控制器处理它并得到相同的结果(我做了),但我想知道是否有一种方法可以在routes.rb中的rails 3中执行相同的操作,或者因为它更好而改变了练习出于某种原因?
我想完全禁用路由/ users/sign_in以获取和发布.
我能够使用以下方法成功覆盖它们:
devise_for :users do
get "/admin" => "devise/sessions#new", :as => :new_user_session
post "/admin" => "devise/sessions#create", :as => :user_session
end
Run Code Online (Sandbox Code Playgroud)
当我运行rake路线时,我看到以下内容:
new_user_session GET /admin(.:format) {:controller=>"devise/sessions", :action=>"new"}
user_session POST /admin(.:format) {:controller=>"devise/sessions", :action=>"create"}
new_user_session GET /users/sign_in(.:format) {:action=>"new", :controller=>"devise/sessions"}
POST /users/sign_in(.:format) {:action=>"create", :controller=>"devise/sessions"}
Run Code Online (Sandbox Code Playgroud)
我可以从/ admin以及/ users/sign_in访问登录.但我想完全删除最后两行,是否可能?
我从文档中尝试了一些不同的组合,但它也覆盖了一些有用的组合,如密码/新密码/编辑路由.
我有一个哈希,让我们说:
ahash = {test1: "test1", test2: "test2"}
Run Code Online (Sandbox Code Playgroud)
为什么它Hash === ahash返回true,但ahash === Hash不是?这是一些带有===和类名的默认ruby行为吗?
我有以下架构:

我想要选择同时调用proposalsforeign_keys(author_id和editor_id)以及单独的(例如author_proposals和editor_proposals),我需要选择延迟或急切加载它们(例如User.includes(:proposals)或没有它joins).
更新:
#I have the scopes which is like this:
class User < ActiveRecord::Base
has_many :author_proposals, class_name: 'Proposal', foreign_key: :author_id
has_many :editor_proposals, class_name: 'Proposal', foreign_key: :editor_id
end
class Proposal < ActiveRecord::Base
belongs_to :author, class_name: 'User', foreign_key: :author_id
belongs_to :editor, class_name: 'User', foreign_key: :editor_id
end
Run Code Online (Sandbox Code Playgroud)
但我需要一个通用的一个,它会给我所有的提案(包括author_proposals和editor_proposals),这也将跃跃欲试加载它们.我应该使用条件has_many吗?
我想为div创建一个线性透明渐变.有没有办法用jquery做到这一点?或者我应该使用像raphaeljs这样的其他库吗?我想达到如下效果:

我在rails 4应用程序中设置了sidekiq,用于发送电子邮件和处理后台作业.我还设计了我使用devise_async和典型的联系表单电子邮件.我正在使用Gmail发送电子邮件.
如果我删除sidekiq,它通常通过gmail(设计和联系表单)发送电子邮件,但是当我启用它时,它不起作用(devise_async既不是联系表单也不是).Sidekiq显示后台作业开始并成功完成(我也通过sinatra应用程序看到它们已被处理)但电子邮件从未发送过.
在开发过程中,控制台显示发送的电子邮件(使用devise_async和联系表单,因为它们已成功处理sidekiq).
我已经尝试过的:
bundle exec sidekiq但没有任何效果.我使用的是ruby 2.0.0-p247.
我还在这个应用程序中使用sidekiq设置图像处理,并且在开发和生产中都能很好地工作.
我没有做任何花哨的事情,但我正在添加完成代码:
我的邮件代码:
def send_message
@message = Message.new(message_params)
if @message.save
ContactMailer.delay.contact_form(@message.id)
end
end
Run Code Online (Sandbox Code Playgroud)
我的邮件:
def contact_form(message_id)
message = Message.where(id: message_id).first
@email = message.email
@message = message.text
mail(to: "myemail@gmail.com", subject: "Message from contact form")
end
Run Code Online (Sandbox Code Playgroud)
和我的生产配置(它没有sidekiq工作):
config.action_mailer.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:authentication => "plain",
:enable_starttls_auto => true,
:user_name => "myusername",
:password => "mypassword"
}
config.action_mailer.default_url_options = { :host …Run Code Online (Sandbox Code Playgroud) 我有一个控制器,用于控制联系页面上的联系我们表单.在routes.rb文件中我有一行说match '/contact', :to => 'feedback#new'.现在当表格填写正确时,一切正常; 网址是'/ contact'.但是,当表单未正确填写时,我的控制器renders 'new'和URL将更'/contact'改为'/feedback'.有人能告诉我为什么会发生这种情况以及我如何解决这个问题,以便如果验证被触发并且页面被渲染,那么网址是否/contact仍然存在/feedback?谢谢!
我的控制器代码:

我创建了一个CORS Web应用程序(只有javascript),我希望在不同的LAN下安装和运行.
我想放置SSL,但我不知道局域网的确切配置是什么,可能每次都会有所不同.所以我认为我无法添加经过认证的SSL.SSL有其他可能的解决方案吗?由于警告,我不喜欢添加未经认证的SSL的方法.
我怎样才能加密包并对请求进行安全认证?我正在使用CouchDB默认CORS,但如果在开放的WIFI中安装并使用Web应用程序,则可以嗅探包.该应用程序仅使用javascript,我不知道如何保护它(唯一的后端是couchDB中的存储).
ruby ×3
devise ×2
jquery ×2
actionmailer ×1
activerecord ×1
controller ×1
couchdb ×1
css ×1
javascript ×1
opacity ×1
raphael ×1
routing ×1
security ×1
sidekiq ×1
ssl ×1
url-routing ×1
wifi ×1