我刚刚开始使用Ruby和Rails,尝试使用Rails3进行设计。我有一个围绕帖子列表的循环,每个帖子都有一个关联的用户。我只想显示与当前用户关联的那些帖子的编辑控件。(上面是简化的,并且是根据内存,所以我确信语法不完全正确-但你明白了要点。)如果没有用户登录,帖子将按预期显示-有一个Show链接,但没有Edit链接。但是,如果我完全登录,所有的Edit链接都会显示,甚至是其他用户创建的第一个帖子。我已在控制台中验证User.find(1)!=User.find(2),但由于某些原因current_user=post.user无论当前谁登录,计算结果都为真。这是因为current_us
我一直在成功地遵循Rails教程3,直到我到达第7章并实现了用户模型,现在我的rspec一直失败。这是我的user.rb文件输出classUsertrue,:length=>{:maximum=>50}validates:email,:presence=>true,:format=>{:with=>email_regex},:uniqueness=>{:case_sensitive=>false}validates:password,:presence=>true,:confirmation=>true,:length=>{:within=>6..40}before_save:encr
当我登录我的页面时,我会自动转到路线:http://localhost:3000/sessions/user我得到这个错误:RoutingErrorNoroutematches"/sessions/user"我在此处的用户文件夹中创建了一个名为sessions_controller.rb的Controller:classUsers::SessionsController"Youhavebeenloggedout."enddefcreateuser=User.authenticate(params[:login],params[:encrypted_password])ifuserses
我正在使用Rails4.0.1和ruby2.1.1。我正在尝试将cancan与rails_admin集成。我的application_controller.rb看起来像这样helper_method:current_userprivatedefcurrent_user@current_user||=User.find_by(email:session[:user_id])ifsession[:user_id]end我的current_user辅助方法在应用程序的其余部分工作正常。我的ability.rb看起来像这样classAblityincludeCanCan::Abilityd
当我尝试注销时,出现没有路由匹配[GET]"/users/sign_out"的错误。这是我的注销链接标签。下面是我的User模型和Devise相关的路由:Rails.application.routes.drawdodevise_for:usersdoget'/users/sign_out'=>'devise/sessions#destroy'endroot'books#index'resources:booksdomemberdoput"like",to:"books#upvote"endendend这是我的设计.rbconfig.sign_out_via=:get
在Rails3.2中使用Devise2.2.4。当我未登录时,我转到urlmyapp.com/documents,Devise将我重定向到myapp.com/users/sign_in并在devise.failure.unauthenticated下显示在devise.en.yml中配置的闪现消息。这是可取的!当我未登录时,我转到了urlmyapp.com(根路径),Devise进行了类似的重定向并显示了相同的闪存消息。重定向仍然是可取的,flash消息不是那么多。有没有一种方法可以配置Devise在从根路径重定向时不显示flash的“未验证”消息?我知道我可以在自定义FailureA
我正在尝试在我的“团队”模型中编写一个方法,但current_user显示此错误#的未定义局部变量或方法“current_user”defset_default_urlifcurrent_user.id==self.user_id"/assets/default_black_:style_logo.jpg"else"/assets/default_:style_logo.jpg"endendcurrent_user方法适用于其他模型和Controller。我是这样调用这个方法的。has_attached_file:logo,:styles=>{:medium=>"200x200#",:
我在连接Postgres数据库时遇到问题。我为它创建了一个用户(它从未提示我输入密码),所以我运行命令ALTERUSERuser_nameWITHPASSWORDpassword来创建一个。我在Rails项目的配置目录下的database.yml文件中设置了用户名和密码。它仍然告诉我身份验证失败(如我的头衔),我不知道为什么。我根据这个link的答案修改了我的pg_hba.conf文件.我能想到的唯一可以解决这个问题的方法就是让我的用户成为super用户。但是我想知道为什么现在不让它成为super用户就不能工作。有人知道吗?编辑:=>BootingThin=>Rails3.2.11ap
我在猜测如何从数据库中检索所有记录的名称。简单的方法是这样的:@user=User.all@list=[]@user.eachdo|u|@list.push(u.name)end但我确定它是否必须是必须适合的irb上的在线查询。有人有想法吗? 最佳答案 你应该试试:User.all.collect(&:name)或User.select("姓名") 关于ruby-on-rails-从数据库中获取所有user.namerails,我们在StackOverflow上找到一个类似的问题:
所以我有这个用例,我在Controller(使用ApplicationController.renderer)中呈现一条消息,然后将其广播给几个用户。广播也在同一Controller内部执行。当对某个对象执行更新时,这两个操作都会被触发。问题是,我需要访问渲染View中的current_user对象,当然,我不能将当前用户渲染为局部变量,因为这样消息将与广播消息的用户一起发送而不是将看到该View的最终用户。因此,在阅读了几篇博文和Rails文档后,我将使用cookie的身份验证设置为actioncable支持。我的问题是:如何在呈现的View中访问最终用户的对象(current_us