【问题标题】:Partial views on rails not visible导轨上的部分视图不可见
【发布时间】:2017-02-05 15:03:51
【问题描述】:

我开始使用 在 HTML 文件中使用 Rails 上的局部视图,但由于某种原因,局部视图未显示。

找到了部分但没有渲染,所以我得到的只是主视图中的 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

提前致谢。

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    如果使用 rails 命令生成新的脚手架会发生什么

    rails g scaffold YourScaffolds mystring:string 
    

    如果你检查路径

    yourscaffolds/new 
    

    你能看到渲染的表格吗?如果这是一个普遍问题,我无法帮助您。如果您可以看到标准脚手架的部分内容,那么您的代码中一定有问题。

    除非您从 RoR 收到错误消息,否则通常会找到您的部分。上面的代码看起来很好。但是,您需要确保该部分与您的视图模板位于同一文件夹中。

    所以对你来说可能是

    /articles/new.html.erb /articles/_form.html.erb

    确保您调用 &lt;%= render "form" %&gt; 的文件具有 .erb 扩展名。祝你好运!

    你能发布你的控制器方法吗?您使用的是默认脚手架吗? 你能看到模板的内容,并且只丢失了部分吗?

    语法如下:

    render "products/show"
    
    render template: "products/show"
    

    确保你有 ruby​​ 标识符围绕它。 比不应该完全没有理由不渲染部分。检查您的代码是否存在拼写错误。部分应始终以低于分数开头 _

    【讨论】:

    • 这就是问题所在。一切都如您所说:两个文件都在同一个文件夹中,并且都具有相同的 .erb 扩展名,而我得到的只是一个空白部分。
    • 添加了有关该问题的其他信息。
    猜你喜欢
    • 1970-01-01
    • 2012-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多