【发布时间】:2017-10-18 22:36:10
【问题描述】:
我正在遵循一个教程,我必须在其中制作一种目录网站。因为需要有一个用户可以写评论的页面,所以我为评论创建了视图和表单。我所做的步骤是:
1 - 在 app/views/reviews 创建了一个评论文件夹:
2 - 在该文件夹中创建一个名为 _forms.html.erb 的部分用于评论
<%= simple_form_for(@review) do |f| %>
<%= f.error_notification %>
<div class="form-inputs">
<%= f.input :content, required: true %>
<%= f.hidden_field :place_id, required: true, value: @place_id %>
</div>
<div class="form-actions">
<%= f.button :submit %>
</div>
<% end %>
3 - 要在我添加的地方/节目上呈现评论/_form:
<div class="col-md-9">
<h3>Reviews by People</h3>
<%= render 'reviews/form' %>
</div>
尝试呈现表单时出错,所以我去了 PlacesController,并将以下代码行放在 show 方法上:
# GET /places/1
# GET /places/1.json
def show
@review = Review.new
end
我的 routes.rb 文件有评论的路线。我得到的错误是:
NoMethodError in Places#show
Showing C:/workinrails/myyelpapp/app/views/reviews/_form.html.erb where line #5 raised:
undefined method `content' for #<Review:0x9200a30>
Trace of template inclusion: app/views/places/show.html.erb
app/views/reviews/_form.html.erb:5:in `block in _app_views_reviews__form_html_erb___988880813_76383660'
app/views/reviews/_form.html.erb:1:in `_app_views_reviews__form_html_erb___988880813_76383660'
app/views/places/show.html.erb:13:in `_app_views_places_show_html_erb__530556826_71913768'
我可以提供任何代码 sn-ps 以便更好地理解
【问题讨论】:
-
这里的名字有点混乱。页面与地点。您是否同时拥有 PagesController 和 PlacesController 却忘记在正确的 PlacesController 中添加显示操作
-
我更正了有关该问题的信息,谢谢。我有一个 PagesController 和一个 PlacesController。在我的 PagesController 上只有 def home 方法,里面什么都没有。在我的 PlacesController 中,我有这个:@review = Review.new
-
Review 表中有哪些列。
-
@rohan 您可以将这些字段粘贴到您的评论表中吗?
-
content或context?
标签: ruby-on-rails ruby model-view-controller partials