Tag: 的Ruby on 轨道

使用redirect_to:创建动作

我正在尝试重定向到另一个控制器的create方法。 但是,我找不到将方法设置为POST的方法。 这导致调用索引方法。 使用:method => :post只创建一个新参数,但不更改http方法。 有关如何重定向到create方法的任何想法?

Rails:显示同一URL的不同视图?

首先,我要做的一个例子: 如果您访问http://www.meetup.com而您尚未登录,则会看到显示“做某事•了解某事……”等页面,这是一个公共页面 但是当您登录时,同一页面(URL)显示“欢迎,xxx ……发生了什么……”等特定于您。 这也是我在我的应用程序中尝试做的事情。 如何在Rails 2.3.8中解决这个问题? 到目前为止,我有: 一个AboutsController旨在提供半静态页面(希望关于不是复数!) 根路由是map.root => :controller => “about” 。 现在,当一个未登录的用户 http://www.abc.com ,他将获得about/index的视图about/index 。 到现在为止还挺好。 但是,当用户登录时 ,我希望products/index视图应显示为相同的URL,即http://www.example.com URL(而不是http://www.example.com/products ) 这在Rails 2.3.8中是否可行?

select_tag rails问题

我有一个select_tag,就像这样:选择一些东西1东西2 …… 在我选择了2并点击提交按钮后,它会刷新页面,但是在select_tag上显示再次选择某个内容。 我怎样才能让它显示2?

Controller类中的session和params之间的区别

我正在查看购物车的rails示例,在ApplicationController类中,我看到如下代码: class ApplicationController < ActionController::Base protect_from_forgery private def current_cart Cart.find(session[:cart_id]) rescue ActiveRecord::RecordNotFound cart = Cart.create session[:cart_id] = cart.id cart end end 所以它使用的是Cart.find(session [:cart_id]) 然后我去carts_controller.rb和CartController类,我看到这样的代码: def update @cart = Cart.find(params[:id]) respond_to do |format| 所以这里使用的是Cart.find(params [:id]) 但我不明白为什么我们使用session在AppController中传递params但是我们在CartController中使用了普通的params并且我们可以使用swithc来使用它们吗? 或者是rails如何工作并且会话总是进入AppController? 如果有人能够更详细地解释这一点,那将是非常重要的

Rails 5:validation复选框的接受程度

我有一个带有一些嵌套字段的注册表单,在这个表单中我添加了一个服务条款的复选框。 我正在尝试validation何时选中复选框,如果没有则返回错误。 validates_acceptance_of :agreement, :allow_nil => true, :accept => true, :on => :create 我有一个布尔列,在accounts表中设置为默认值。 add_column :accounts, :agreement, :boolean, default: false 此外,我已将:agreement添加到允许的控制器参数中。 这是forms: “form-control” %> “form-control” %> “form-control” %> “form-control” %> “form-control” %> “form-control” %> “form-control” %> “form-control”, :id=>”sign-frm-input” } %> I agree to the 1) %>. ‘btn btn-primary’ %> 但它返回表格错误agreement must be accepted即使我接受它。 任何想法我可能会遗漏的东西!

ubuntu 11.04上的RVM / Rails安装错误

升级到ubuntu 11.04后,我遇到了rvm这个问题。 我正在学习本教程: http : //ruby.railstutorial.org/ruby-on-rails-tutorial-book#top Git安装好了,当我按照RVM网站上的说明显然也没关系,但是当我关闭我的终端并打开一个新的并输入ruby -v或rvm -v ,我收到一条消息“rvm未安装” 。 我该怎么办?

使用link_to Rails设置会话变量

是否可以使用link_to设置会话变量? 我不想设置参数,因为我有一些重定向并且它被擦掉了。 即我想用链接将会话变量“modelid”设置为“你”。 我想在FB登录oauth运行时设置会话变量… “btn btn-primary btn-large inline pull-left”, :onclick => “FB.login(function(response){},{perms:’email, publish_stream, user_photos’});” } %>

Rails:Watir中的代理身份validation(Chrome驱动程序)

我试图在chrome webdriver中添加代理身份validation,它在下面的watir上运行: require ‘watir’ proxies = [‘–proxy-server=185.264.167.184:63109’, ‘–proxy-auth=username:password’] browser = Watir::Browser.new :chrome, :switches => proxies browser.goto(url) 当浏览器运行它仍然问我如下的用户名和密码: 问题是如何在watir上运行的chrome驱动程序中设置用户名和密码?

sign_in_and_redirect如何设计工作?

if @user.persisted? sign_in_and_redirect @user, :event => :authentication #this will throw if @user is not activated set_flash_message(:notice, :success, :kind => “Facebook”) if is_navigational_format? else session[“devise.facebook_data”] = request.env[“omniauth.auth”] redirect_to new_user_registration_url end 这种方法存在于facebook omniauth callbacks controller 。 我面临的问题是我没有从facebook获取用户的电话号码,因此@user不是有效的对象(我有validation )。 所以,我想将用户重定向到另一个我可以询问电话号码的页面。 如何修改sign_in_and_redirect @user以将我重定向到该页面而不是根url。

rails有一个’response.write’,想要从一个动作快速输出

从动作 (不是视图)中,我想输出一些快速调试代码。 rails有这种方法吗? 在asp.net我会这样做: Response.Write(“hello”);