0

有没有办法form_for在 index.html.erb 中显示 new.html.erb div?

我希望能够在不离开主页的情况下添加新条目。也许是部分的?

4

4 回答 4

0

我通过在控制器的索引模块中创建 @article = Article.create 来让它工作。奇迹般有效。不需要部分。

于 2013-07-05T20:00:42.837 回答
0

这种方法对我有用。

在 links_controller.rb 我将@link 添加到索引控制器

def index
 @links = Link.all
 @link = Link.new
end

在 index.html.erb 我只添加了部分

<%= render 'form' %>

结束了这个屏幕: 在此处输入图像描述

于 2015-04-10T19:02:43.740 回答
0

您不能渲染模板的一部分,只能渲染整个模板。

如果您对多个模板有相同的部分,则将其放入部分并将部分呈现为模板的一部分。

这是一个非常简单的例子:

_partial.rb:

<%= form_for ... %>
  ...
<% end %>

新的.html.erb:

render 'partial'

index.html.erb:

render 'partial'

有关局部和渲染的更多信息,您可以在rails guides中阅读。

于 2013-07-05T19:37:11.817 回答
-1

是的,在这种情况下,部分会更好。你可以有一个“_form.html.erb”的部分。在那个部分只放form_for内容。让您有一个博客模型,并在索引中显示博客列表。

def index
 @blog = Blog.new
 #your rest code goes here
end

index.html.erb

<YOUR HTML CONTENT>
<%= render "/blogs/form" %>

_form.html.erb

<%= form_for(@blog) do |f| %>
   Your code for the form
 <%= end %>

如果你想保留新的action只会显示表单,那么你需要改变action和new.html.erb

def new
  @blog = Blog.new
end

在 new.html.erb

<%= render '/blogs/form' %>
于 2013-07-05T19:41:55.333 回答