我正在关注如何基于Ruby on Rails构建博客网站tutorial。目前文章如下:
这篇文章的标题,正文和评论如下。您输入姓名和评论的字段目前分别名为“AUTHOR NAME”和“BODY”。这些是基于其相应属性的“默认”名称;请参阅下面的comments_controller.rb
。
class CommentsController < ApplicationController
def create
@comment = Comment.new(comment_params)
@comment.article_id = params[:article_id]
@comment.save
redirect_to article_path(@comment.article)
end
def comment_params
params.require(:comment).permit(:author_name, :body)
end
end
问题是如何将标签“AUTHOR NAME”和“BODY”更改为自定义标签“Your name”和“Your comment”。该文章由视图show.html.erb
:
<h1><%= @article.title %></h1>
<p><%= @article.body %></p>
<h3>Comments (<%= @article.comments.size %>)</h3>
<%= render partial: 'articles/comment', collection: @article.comments %>
<%= render partial: 'comments/form' %>
<%= link_to "<< Back to Articles List", articles_path %>
<%= link_to "delete", article_path(@article), method: :delete, data: {confirm: "Really delete the article?"} %>
<%= link_to "edit", edit_article_path(@article) %>
表单的显示由部分_form.html.erb
:
<%= form_for(@article) do |f| %>
<ul>
<% @article.errors.full_messages.each do |error| %>
<li><%= error %></li>
<% end %>
</ul>
<p>
<%= f.label :title %><br />
<!-- <%= f.label :author_name, "Your name" %><br /> -->
<%= f.text_field :title %>
</p>
<p>
<%= f.label :body %><br />
<!-- <%= f.label :author_name, "Your Name" %> -->
<%= f.text_area :body %>
</p>
<p>
<%= f.submit %>
</p>
<% end %>
我尝试使用注释掉的行来实现自定义标签,但这不起作用。如何自定义标签?
答案 0 :(得分:3)
只是做:
<%= f.label "Your name" %>
<%= f.text_field :title %>
<%= f.label "Your comment" %>
<%= f.text_area :body %>
您采用的方式将标签设置为模型中:title 和:body 对应的标签。
答案 1 :(得分:0)
我仍然会在表单上保留:title和:body,但会将自定义标签添加为第二个参数。
<p>
<%= f.label :title, "Your name" %><br />
<%= f.text_field :title %>
</p>
<p>
<%= f.label :body, "Your custom label" %><br />
<%= f.text_area :body %>
</p>