我开始使用rails上的部分内容,在HTML文件中使用<%= render“Name_of_the_view”%> ,但由于某种原因,部分视图不会显示。
找到partial但没有渲染,所以我得到的是主视图中的h1标题。
已经检查过拼写,设置和所有类型的东西,但不知道出了什么问题。
这是代码:
主HTML文件:
<div class="container">
<h1>Create article</h1>
<%= render "form" %>
</div>
_form 包含我要渲染的局部视图的文件(它位于主HTML文件所在的同一文件夹中):
<%= form_for @article do |f|%>
<% @article.errors.full_messages.each do |message| %>
<div class="card-panel red">
<span class="white-text"><%= message %></span>
</div>
<% end %>
<div class="form-group">
<label for="title" class="active">Title</label>
<%=f.text_field :title, class:"form-control"%>
</div>
<div class="form-group">
<label for="body" class="active">Body</label>
<%=f.text_area :body, class:"form-control", style:"height:250px"%>
</div>
<%=f.submit "Submit", :class=>"btn btn-primary"%>
</div>
<%end%>
这是控制器:
class ArticlesController < ApplicationController
def index
@articles = Article.all
end
def show
@article = Article.find(params[:id])
end
def new
@article = Article.new
end
def create
@article = Article.new(article_params)
if @article.save
redirect_to @article
else
render :new
end
end
private
def article_params
params.require(:article).permit(:title,:body)
end
end
提前致谢。
答案 0 :(得分:0)
如果使用rails命令生成新的脚手架会发生什么?
rails g scaffold YourScaffolds mystring:string
如果检查路径
yourscaffolds/new
你能看到渲染的形式吗?如果这是一般性问题,我无法帮助你。如果您可以看到标准脚手架的部分,那么代码中必定存在错误。
除非您从RoR收到错误消息,否则通常会找到您的部分内容。上面的代码看起来很好。但是,您需要确保partial与视图模板位于同一文件夹中。
所以对你来说可能是
/articles/new.html.erb /articles/_form.html.erb
确保您拨打<%= render "form" %>
的文件的扩展名为.erb。祝你好运!
你能发布你的控制器方法吗?你在使用默认支架吗? 你能看到模板的内容而只缺少部分吗?
语法如下:
render "products/show"
render template: "products/show"
确保你有ruby标识符。 &lt;%=%&gt; 比应该绝对没有理由为什么部分不渲染。检查您的代码是否有任何拼写错误。部分应始终以得分_
开头