以下代码使用Bootstrap 3.0显示Rails Flash消息:
<%# Rails flash messages styled for Twitter Bootstrap 3.0 %>
<% flash.each do |name, msg| %>
<% if msg.is_a?(String) %>
<div class="alert alert-<%= name == :notice ? "success" : "danger" %>">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<%= content_tag :div, msg, :id => "flash_#{name}" %>
</div>
<% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
代码来自文章Bootstrap和Rails.
Foundation和Rails一文中的类似代码可以与Foundation一起使用:
<%# Rails flash messages styled for Zurb Foundation 5.0 %>
<% flash.each do |name, msg| %>
<% if msg.is_a?(String) %>
<div …Run Code Online (Sandbox Code Playgroud) ruby-on-rails twitter-bootstrap zurb-foundation railsapps ruby-on-rails-4.1
Ruby on Rails 4.1
我正在使用具有枚举角色的Devise.它在创建用户时当前设置了defualt角色.我想在表单中添加一个字段,用于创建用户以设置枚举角色.
我读过这篇文章,但没有说明如何利用新角色.
这是User类
devise :database_authenticatable, :registerable, :confirmable,
:recoverable, :rememberable, :trackable, :validatable
enum role: [:user, :vip, :admin, :developer, :marketing, :support, :translator]
after_initialize :set_default_role, :if => :new_record?
def set_default_role
self.role ||= :user
end
Run Code Online (Sandbox Code Playgroud)
这是我尝试选择一个枚举角色的表单的一部分:
<div class="form-group">
<%= f.collection_select :role, User.roles, :id, :enum, {prompt: "Select a role"}, {class: "form-control input-lg"} %>
</div>
Run Code Online (Sandbox Code Playgroud)
错误:
NoMethodError - undefined method `enum' for ["user", 0]:Array:
actionview (4.1.1) lib/action_view/helpers/form_options_helper.rb:761:in `value_for_collection'
Run Code Online (Sandbox Code Playgroud)
我之前从未使用过enum,文档也没有证明是有帮助的.如何显示枚举选项?
我是Ruby on Rails的新手,并且看到人们使用Rails Brick或Rails Composer等自动样板生成器来创建样板用户管理系统等.来自不信任自动生成代码的后台,这是好的/ Rails中的合法实践使用此类系统.另外,我正在与一家初创公司合作开展一个项目.使用这种发电机是否合适,这种习惯有多普遍.
PS Mods请注意,这不是要求比较/意见/争议的问题.我对Rails中的一般做法感到好奇,以及它在生产中的使用频率.
ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 railsapps
我安装了导轨并且几乎正常工作.正在努力解决另一个问题我不小心关闭了bash窗口.所以我重新打开它,现在我根本无法使用rails,它告诉我没有安装rails.所以我跑了gem install rails --no-ri --no-rdoc,现在我得到以下内容:
ERROR: While executing gem ... (Errno::EEXIST)
File exists @ dir_s_mkdir - /usr/local/Cellar/ruby/2.1.1_1/lib/ruby/gems`
Run Code Online (Sandbox Code Playgroud)
如何更正此错误?
我使用Rails Composer为这里描述的rails-devise-roles项目创建一个框架应用程序:
https://github.com/RailsApps/rails-devise-roles
我收到由以下内容生成的500错误:
Sass::SyntaxError - ".authform form" failed to @extend ".bg-faded".
The selector ".bg-faded" was not found.
Use "@extend .bg-faded !optional" if the extend should be able to fail.
Run Code Online (Sandbox Code Playgroud)
添加"!optional"标志允许它进行渲染,但不会显示任何导航链接.
我的Gemfile的内容显示如下:
source 'https://rubygems.org'
git_source(:github) do |repo_name|
repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
"https://github.com/#{repo_name}.git"
end
ruby '2.2.5'
gem 'rails', '~> 5.1.3'
gem 'sqlite3'
gem 'puma', '~> 3.7'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.2'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.5'
group :development, :test do …Run Code Online (Sandbox Code Playgroud) 我使用RailsApps rails-composer创建了rails- devise-pundit starter应用程序.我仍然对铁轨上的红宝石有点新意,而且更新设计,专家和导轨4.
我正在查看代码以了解它是如何工作的.控制器和策略类中有很多地方user.admin?叫做.但我找不到管理员?方法.我希望它在用户模型中,但它不存在.这是用户类:
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable, :confirmable,
:recoverable, :rememberable, :trackable, :validatable
enum role: [:user, :vip, :admin]
after_initialize :set_default_role, :if => :new_record?
def set_default_role
self.role ||= :user
end
end
Run Code Online (Sandbox Code Playgroud)
在users_controller.rb的一部分中使用:
def show
@user = User.find(params[:id])
unless current_user.admin?
unless @user == current_user
redirect_to root_path, :alert => "Access denied."
end
end
end
Run Code Online (Sandbox Code Playgroud)
权威或设计是否会以某种方式创建此方法?我已经看到它在专家文档中使用,但它只是以它为例.它没有说明需要创建方法或者它处理它.它是否以某种方式使用角色枚举,其中:admin作为可能的值?如果有人能解释这是如何工作的,我会很感激.
我打算尽快添加使用rolify gem来处理角色,而不是用户类中的角色枚举.也许我会因为某些原因想要制作完全不同的角色名称.我想确保我理解如何保持一切正常.谢谢.
我之前问过有关 cloud9 的类似问题,但我现在尝试在我的 Windows 10 计算机上并行执行相同的项目,因为我无法访问互联网来使用 cloud9。我正在尝试设置配置,为遵循 Daniel Kehoe 的 learn-rails 教程书做准备,但我在设置环境变量时遇到问题。这本书似乎解释了如何在 Mac 上执行此操作,但我在 Atom 编辑器中找不到该文件。书上说输入命令:
atom ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)
然而,这只是创建了一个新文件,该文件不属于我的 Rails 应用程序项目目录。我也尝试过
atom ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
这是替代方案,但结果相同。它只是创建一个与我的项目无关的文件。该文件应该已经存在于某处。
我应该将环境变量放入名为“.bashrc”的文件中,但我不知道在哪里可以找到该文件,因为它是隐藏的。如何使用 Atom 文本编辑器找到并打开该文件?
railsapps ×8
devise ×2
atom-editor ×1
aws-opsworks ×1
enums ×1
pundit ×1
ruby ×1
sass ×1
ssh-keys ×1