在index.html.erb中将new.html.erb显示为部分

时间:2013-07-05 19:33:08

标签: ruby-on-rails

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

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

4 个答案:

答案 0 :(得分:0)

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

如果你的几个模板的部件相同,那么将它放在部分模板上,然后将部分模板作为模板的一部分。

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

_partial.rb:

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

new.html.erb:

render 'partial'

index.html.erb

render 'partial'

有关部分和渲染的更多信息,您可以阅读rails guides

答案 1 :(得分:0)

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

答案 2 :(得分:0)

这种方法对我有用。

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

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

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

<%= render 'form' %>

结束以下屏幕: enter image description here

答案 3 :(得分:-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 %>

如果您想保持新操作只显示表单,则需要更改操作和new.html.erb

def new
  @blog = Blog.new
end

在new.html.erb

<%= render '/blogs/form' %>