0

我有一个代码,用户可以在其中选择要删除或分析的特定文件。

 <% if @files%>    
    <%= form_tag what_to_do_files_path, method: :get do %>
    <%= submit_tag "Delete selected", :name => 'delete' %>
    <%= submit_tag "Analyse", :name => 'analyse' %>
      <% @files.each do |file| %>
        <% if (file.analyzed=="no") %>
            <p><td> <%= check_box_tag "files[]", file.id %></td><%= file.name %></p>       

        <% else %>      

        <div class="my_profile_info">     
        <p><td> <%= check_box_tag "files[]", file.id %></td> <%= file.name %></p>        

        <td class="Info">
        <a href="<%=file.info%>" target ="_blank" class= "btn btn-mini btn-info">Info</a>  
        </td>  

         </div>

        <% end %>
      <%end%>
    <%end%> 
    <%else%>
    <%end%>

我需要能够为每个分析命名。
例如:用户选择 3 个文件,在文本字段“年利润分析”中输入名称,然后单击“分析”按钮。名称“年度利润分析”和所选文件的名称必须保存到表 group_analysis 中。在 submit_tag "Analyse" 之后我尝试过这样的事情:

<%= form_for @groupanalysis do |f| %>
      <div class="field_label">
        <%= f.label :group_name, "Type group name hier" %>
      </div>

  <br class="clear" />
  <br />

<% end %> 

但它告诉我undefined method model name

提前致谢。

4

1 回答 1

0

我认为您可能需要退后一步,想想这个表单如何代表您尝试创建或更新的模型。一般来说,and 的第一个参数form_for分别form_tag是一个对象和符号,它们代表您正在使用的模型。表单字段映射到对象的每个属性。

根据约定和/或:url参数,这将被路由到适当的控制器并根据 HTTP 动词调用一个操作(同样,这是 rails 中许多约定的一部分)。

回到您的代码示例,您错误地使用了form_tag帮助程序,并且使用的示例form_for可能不是正确的实现。例如,您只是显示一个标签,没有输入也没有提交。

我讨厌在这里发布一个链接,只是告诉你阅读文档,但在这种情况下,我认为这是最好的第一步。

http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_for

于 2013-05-20T12:07:52.677 回答