- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个很长的 Controller 方法,有很多重定向条件:
def show
get_param_user
if params[:id].match(/\D/)
@document = Document.where(:user_id => @user.id, :issue => params[:id]).first
else
@document = Document.find(params[:id])
end
unless @document.blank?
unless @document.template.name == "Media"
unless @document.retired?
@creator = User.find(@document.user)
if @creator == @user # if document exists, based on name and id
@document.components.each do |a|
redirect_to share_error_url, :flash => { :error => "#{@document.title} contains retired content and is now unavailable." } if a.retired? and return
end
render @document.template.name.downcase.parameterize.underscore
end
else # if retired
redirect_to share_error_url, :flash => { :error => "That document has expired." } and return
end
else # if media
redirect_to share_error_url, :flash => { :error => "Media has no public link." } and return
end
else # if document doesn't exist
redirect_to share_error_url, :flash => { :error => "Can't find that document. Maybe check your link. Or maybe it was deleted. Ask #{@user.name}." } and return
end
end
render
或
redirect_to
每个,但我不知道如何才能实现我的需要。
最佳答案
一些具体的小事情。
首先,一般来说,最好不要使用until
与 else
条件,如果您可以使用 if
甚至更少:
unless @document.blank?
if @document.present?
@creator = User.find(@document.user)
@creator = @document.user
@document.user
是
nil
你会立即得到一个异常,在第二种情况下不会),但第二种情况是你通常需要的。
def has_retired_components?
@document.components.any?(&:retired?)
end
if @document.present? and @document.showable? # also @document.try(:showable?)
render whatever
else
redirect_to error_url, flash: { error: error_message }
end
error_message
可能是方法调用的结果(如果有意义的话,在对象本身上)。通过这种方式,您可以移动逻辑以验证对象是否可以在其他地方显示,在那里它与渲染逻辑不那么困惑。
showable?
方法和另一个显示错误消息的方法,您必须确保两者的业务逻辑始终正确。一种选择是将其与验证的工作方式类似地对待它:有一个方法(让我们用可怕的名称
showable_validation
在这里调用它只是继续)返回带有错误和消息的散列(对象无法显示的原因) , 像
{title: 'this is an error message'}
. 那么
showable?
方法将是:
def showable?
showable_validation.empty?
end
def showable_error
showable_validation.values.first
end
error_message
(
@document.showable_error
)。这样,逻辑就只有一种方法。
关于ruby-on-rails - rails : clean up messy controller methods,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20389048/
我正在尝试配置 jQuery Messi(模态窗口)插件。 我已经检查了文档和示例,但无法让“关闭”按钮位于模式窗口的中心。 谁能帮我解决这个问题吗? 最佳答案 将此行添加到您的 CSS 文件中,然后
我在 WebForms 中有一个 jQuery 脚本,我试图在按钮单击事件中显示一条消息。我的 .aspx 文件中有 script,我在代码隐藏中调用它。问题是如果用户单击 confirm 而不是 c
在相当大的 Ruby 应用程序中,我们会遇到这样一种情况,即给定的对象由一些东西来标识:例如名称和 ID。这些值类型中的每一个都有不同的用途,因此并不完全等同(id 和 name 存在于不同的地方)。
我正在通过 API 从在线数据库 (REDCap) 获取数据,数据以逗号分隔的字符串形式传递,如下所示, RAW.API NA 2 2 1 event_2_arm_
我需要从文本文件中分别以 String、Int 和 float 形式提取姓名、年份和评级。然后我用我提取的数据实例化一个对象列表。我已经缓冲了一个看起来像这样的文本字符串。 !Women Art Re
我阅读了所有网站内容、示例,但找不到手动关闭梅西弹出窗口的命令。我知道标题中有一个关闭按钮。但我想放置一个自定义关闭按钮并在完成 xhr 后自动关闭弹出窗口。 梅西项目页面:http://sri.im
我在 Login.aspx 中使用“messi”Jquery 通知插件,如果用户未注册,则会向用户显示一条消息并将其重定向到 Register.aspx: ScriptManager.Registe
我习惯用Git中的标签来管理版本。但对于独立应用程序来说,那是很久以前的事了。现在的问题是我有一个 Web 应用程序,并且同一应用程序可能会连接希望与不同版本的应用程序进行通信的客户端。 因此,我以这
我正在尝试编写 R 代码来从一堆旧电子表格中读取数据。数据的确切位置因工作表而异:唯一不变的是第一列是日期,第二列的标题为“月度返回”。在此示例中,数据从单元格 B5 开始: 如何使用 R 自动在 E
我怎样才能去除某些 html 标签并允许其中的一些标签? 例如, 我要脱span标签但允许 span带下划线。 Text 我想允许 p但我想删除 p 中的所有样式或类例如, Text p 标签内的类应
我有一个很长的 Controller 方法,有很多重定向条件: def show get_param_user if params[:id].match(/\D/) @document
每当我检查用户输入时,它总是变得非常困惑。地址输入就是一个例子。您可以拥有以下内容: 13B大街B大街13号大街 13b 号大街13B号 如果我编写这个代码,结果会是这样的 String number
有一个问题要问你们中的一些 Rails 专家。我正在开发最终将成为一个基于 MySQL 数据库的 Rails3 应用程序。我的应用程序的问题是我的数据库的设置方式。到目前为止,根据我的 Rails 经
在我的 Rails 3 应用程序 Controller 上,我有以下代码: array = [] Location.all.each{|x|array 关于ruby-on-rails - Messy
我在查看在 ASP.NET 中生成的页面的源代码时注意到,实际的标记非常困惑 - 有点像半废话的选项卡式事件,其中插入了一堆空白(参见图片)。 任何人都可以建议一种删除/剥离此空白的技术吗? 最佳答案
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
主要问题:是否有更好的方法来完成创建可重用控件? 因此,我们的想法是制作一个分页控件,从而基本上不再需要在多个 View 上输入几乎相同的标记。它正在采取这个: | | | 然后
首先,该项目在tomcat(UTF-8)和jboss eap 6中运行良好,页面编码也是UTF-8。其次,jboss config有添加 第三,当使用 encodeURIComponent 或 se
我有一个网站,每条新闻都有评论部分。我想使用 ajax 函数每 x 秒更新一次 div。但是,当我将 ajax 代码放入脚本中时,div 变得困惑,我的网站变得滞后,并且控制台中出现很多错误。有人对此
我有一个疑问,我有一个类,我在其中对导入常量使用不同的静态导入,我的问题是我收到错误消息:Too many static imports may lead to messy code .但是在单元测试
我是一名优秀的程序员,十分优秀!