0

我有一个链接模型,其中包含为它创建的所有通用脚手架,但是,我想从我的主页提交一个填充新记录的表单,而不是转到 link#new 页面。

我只有一个文本字段,但我不确定如何构建表单。我在某处读到您必须在表单字段中指定控制器,但这似乎不起作用。

<%= form_for(:link, @link) do |f| %>
  <% if @link.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@link.errors.count, "error") %> prohibited this link from being saved:</h2>

      <ul>
      <% @link.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :url %><br />
    <%= f.text_field :url %>
  </div>

  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>
4

2 回答 2

3

如果您使用默认路由,则无需指定任何内容。

如果@link 是数据库中不存在的对象,Rails 会自动认为这是一个 #new. 所以表单动作是/links,方法是post,这是默认资源#create

在您的情况下,您无需执行任何操作,只需将表单代码修改为:

<%= form_for(@link) do |f| %>
....

此外,您需要在家庭控制器中准备 @link 对象,例如

@link = 链接.new

于 2013-05-01T03:14:43.803 回答
0

您所要做的就是url向 form_for 助手添加一个参数

<%= form_for :link, url: your_home_path do |f| %>
于 2013-05-01T03:12:58.897 回答