Ruby on Rails:文本字段

时间:2013-05-20 09:16:49

标签: ruby-on-rails textfield

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

 <% 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“分析”之后尝试了类似的东西:

<%= 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

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

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

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

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

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