Tag: ruby on rail

在rails中调用应用程序控制器中的当前用户

嗨,大家好,我对rails非常陌生,如果我的问题很简单或愚蠢,请理解我。 我目前正在使用devisegem,我试图将modal放在我的application.html.erb以便模式总是出现在顶部,但我得到的错误信息是, undefined局部变量或方法`current_user’for ApplicationController:Class 我应该在哪里修复从Application.html.erb的Post.rb调用记录? 感谢您的帮助! Application.html.erb //I tried to call this 应用控制器 class ApplicationController < ActionController::Base before_action :configure_permitted_parameters, if: :devise_controller? protected @post_list = Post.where(user_id: current_user).list? def configure_permitted_parameters devise_parameter_sanitizer.permit(:sign_up, keys: [:name]) devise_parameter_sanitizer.permit(:account_update, keys: [:name]) end end

如何解决此Devise身份validation挑战?

大家好,我在这里面临一些挑战,为用户设计认证: 我的应用程序中有两个名为color和sub_color的模型。 sub_color belongs_to颜色和颜色has_many sub_colors.I已经用适当的数据为数据库播种了 挑战; 我希望用户能够在设计注册为集合对象时在设计form_for中选择这些,并且sub_color的id也将用于识别特定用户(例如我可以对所有用户进行排序的情况)蓝色(蓝色)。 我该如何做到这一点? 这是我尝试过的,但它不起作用: %= simple_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %> model for users: belongs_to :sub_color has_one :color, through: :sub_color devise……. end model for sub_color has_many :users belongs_to :color end model for color has_many :sub_color end 这是我在网络浏览器上看到的错误 NoMethodError in Devise::Registrations#new [undefined method `color_id’ for #]

在设计生成的模型中删除用户

首先,我是铁杆新手。 我使用devise gem进行用户身份validation。 现在我想为管理员提供一种删除其他用户的方法。 用户的id未传递给我的destroy操作。 这是我的代码 user_controller.rb class UsersController < ApplicationController def destroy User.find(params[:id]).destroy redirect_to dashboard_path end end dashboard.html.erb |

无法使用Mobility通过Rails中的已翻译列进行排序

此问题基于发布到Mobility GitHub项目的问题。 上下文 Rails :5.0.6 流动性 :0.4.2(带表后端) 我正在使用支持多种文章类型的文章表(例如,博客文章,案例研究,知识库文章)。 此表包含一个列,用于跟踪查看文章的次数 – 一个整数列,每次为文章调用show动作时该列都会递增。 在实现这些文章的翻译时,我想单独跟踪每个翻译的视图数,而不是主文章对象。 为了实现这一点,我将views属性包含在我的对象的翻译属性之一: class Article [:title, :subtitle, :body] has_and_belongs_to_many :products attachment :hero_image, content_type: %w(image/jpeg image/png image/gif) validates :title, :body, :posted_on, presence: true scope :current, -> { where ‘posted_on { where type: [‘BlogPost’, ‘CaseStudy’] } def log_view(by = 1) self.views ||= 0 self.views += by self.save(touch: […]

Rails,设计。 除非AdminUser,否则禁止用户操作

我有使用 Devise创建的用户模型, 类型为:string属性和AdminUser模型( AdminUser < User )。 在应用程序控制器中,我定义了:require_admin方法: def require_admin unless current_user == AdminUser flash[:error] = “You are not an admin” redirect_to store_index_path end end 在我设置的产品控制器上 before_action :require_admin, except: :show 现在我通过控制台成功创建了一个AdminUser(使用AdminUser id),当我登录应用程序时,我仍然无法使用这些操作(创建,编辑等)。 有任何想法吗?

Rails 5&Devise:最小密码长度不起作用

我正在使用Rails 5&Devise和初始化器/ devise.rb: config.password_length = 6..128 注册/ new.html.erb: {:class => “col s12 form-text”, autocomplete: “off”}, validate: true) do |f| %> “validate”, :placeholder => “Robin Smith”, :required => true %> “validate”, :required => true, placeholder: ” ” %> “validate”, :required => true, placeholder: ” ” %> “waves-effect waves-light btn-flat”, :value => “Join Now” %> 和路线: resources […]

Ruby on Rails:设计

我已经为用户登录的假设应用程序设置了一个脚手架,但是当我尝试使用该视图创建用户时遇到以下错误 undefined method `encrypted_password=’ for #

设计错误显示两次

使用Devise进行授权我将其配置为通过电子邮件或登录进行授权。 已删除Validatable驱动程序。 我在我的用户模型中写了validation。 另外我在app / helpers / devise_helper.rb中覆盖了设计助手: module DeviseHelper def devise_error_messages! return “” if resource.errors.empty? errors = Array.new resource.errors.each do |field, msg| errors.push(msg) end flash[:alert] = errors end end 在视图(devise / registrations / new.html.erb)中我替换 至 所以,问题。 如果字段为空(或其他),则会显示闪存错误。 然后我转到主页,错误再次出现。 它只出现在注册界面中。 当授权没事的时候。 请帮忙。 更新。 部分视图(_block_errors.html.erb): “#{name}” %> “#{name}” %> 在布局中,它被称为: 解决了! 在重载方法devise_error_messages中! 需要替换字符串: flash[:alert] = errors […]

使用Railroad for Rails时出现两个错误

我在我的本地机器上安装了diaspora rails应用程序https://github.com/diaspora/diaspora 。 然后我安装了Railroads图生成器http://railroad.rubyforge.org/#download 按照网站上的说明,我构建了一个rake任务来运行它,但是当我运行它时似乎得到两个单独的错误。 第一个错误是没有dot命令: sh: dot: command not found 在没有rake的情况下运行时我也会得到第二个错误: Seans-MacBook-Pro:diaspora sean$ railroad -o models.dot -M /Users/sean/.rvm/gems/ruby-1.9.3-p194@diaspora/gems/railroad- 0.5.0/lib/railroad/app_diagram.rb:54:in `disable_stdout’: uninitialized constant AppDiagram::PLATFORM (NameError) 当我跑rake时: Seans-MacBook-Pro:diaspora sean$ rake doc:diagrams WARNING: Nokogiri was built against LibXML version 2.7.3, but has dynamically loaded 2.7.8 railroad -i -l -a -m -M | dot -Tsvg | sed ‘s/font-size:14.00/font-size:11.00/g’ […]

覆盖嵌套的命名路由参数

来自Rails 文档 ,人们可以简单地这样做: resources :videos, param: :identifier 但是,如果我有嵌套资源怎么办? 这是路线: resources :videos resources :images end 以上生成如下路线: video_images GET /videos/:video_id/images(.:format) images#index 如何覆盖路线中的:video_id ? 在这种情况下,我似乎无法使用param 。