我有一个代码,用户可以选择要删除或分析的特定文件。
<% 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
提前致谢。
答案 0 :(得分:0)
我认为您可能需要退后一步,想一想这个表单如何代表您尝试创建或更新的模型。一般来说,form_for
和form_tag
的第一个参数分别是一个对象和符号,代表您正在使用的模型。表单字段映射到对象的每个属性。
根据约定和/或:url
参数,这将被路由到适当的控制器并根据HTTP谓词调用一个动作(再次,在rails中的许多约定的一部分)。
回到您的代码示例,您错误地使用了form_tag
帮助程序,使用form_for
的示例可能不是正确的实现。例如,您只是显示标签,没有输入也没有提交。
我不想在这里发布链接,只是告诉你阅读文档,但在这种情况下,我认为这是最好的第一步。
http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_for