Ruby on rails RubyonRails中是否有一种方法可以获取;规范的;模型对象的名称?

Ruby on rails RubyonRails中是否有一种方法可以获取;规范的;模型对象的名称?,ruby-on-rails,dry,activemodel,Ruby On Rails,Dry,Activemodel,我正在尝试干燥一个共享布局,我正在使用它来呈现javascript错误弹出窗口 当前,此布局传递了两个局部变量“target”和“target\u name”。这些用于构造Javascript条目,如下所示: <% target.errors.each do |attribute, error_message| %> $(".mainForm #<%= "#{target_name}_#{attribute}" %>").validationEngine(

我正在尝试干燥一个共享布局,我正在使用它来呈现javascript错误弹出窗口

当前,此布局传递了两个局部变量“target”和“target\u name”。这些用于构造Javascript条目,如下所示:

<% target.errors.each do |attribute, error_message| %>
        $(".mainForm #<%= "#{target_name}_#{attribute}" %>").validationEngine("showPrompt", "<%= error_message %>", 'load', 'topRight', true);
<% end %>

$(“.mainForm#”).validationEngine(“showPrompt”、“true”、“load”、“topRight”、true);
共享布局的另一部分也使用这些变量来编写“flash”消息

<p><%= pluralize(target.errors.count, "error") %> prohibited this <%= target_name %> from being created:</p>
禁止创建此文件:

所以我的问题是,鉴于我主要遵守惯例,我是否能在每一个场合都从“target”派生出“target_name”

例如,我正在使用我的用户表单中的错误布局,如下所示

<%= render "shared/errors", target: @user, target_name: "user" %>

<%= form_for @user html: {class: "mainForm"} do |f| %>
  <fieldset>
    <div class="rowElem"><label>Login:</label>
      <div class="formRight"><%= f.text_field :login %></div>
...

登录:
...

总之,我只需在此处指定“target”变量,并从“target”对象派生布局中的“target\u name”。

target.class.to\s应为您提供模型的类的名称。这可能就是你要找的for@Sebastian如果您将其作为答案发布,您可能希望在末尾包含
.downcase
target.class.to_.s.downcase
我曾经想到过类似的事情-我只是想可能有一个Rails提供的方法,它涵盖了所有to-string/downccase和corner-case(模型对象在模块中,奇数复数)-例如,表单辅助对象用于生成表单字段ID的任何方法!