当用户提交文章时,我试图找到一种方法来将所有标题和标签的第一个字母大写。我可以使用大写方法,但是在哪里可以将它添加到控制器代码块中以使其工作?
THX
控制器/ articles_controller:
def new
@article = Article.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @article }
end
end
控制器/ tags_controller:
class TagsController < ApplicationController
def show
@tag = Tag.find(params[:id])
@articles = @tag.articles
end
end
模型/文章:
def tag_names
@tag_names || tags.map(&:name).join(' ')
end
private
def assign_tags
if @tag_names
self.tags = @tag_names.split(/\,/).map do |name|
Tag.find_or_create_by_name(name)
end
end
...
答案 0 :(得分:3)
您打算将资本化的地方?在保存到数据库之前?或者当你向用户展示时?
有两种方法:
使用栏杆titleize function或capitalize
或使用CSS执行:
<p class="tag">im a tag</p>
#CSS
.tag {
text-transform:capitalize;
}
答案 1 :(得分:2)
我会做这样的事情来强迫他们在保存之前大写。
class Article < ActiveRecord::Base
def title=(title)
write_attribute(:title, title.titleize)
end
private
def assign_tags
if @tag_names
self.tags = @tag_names.split(/\,/).map do |name|
Tag.find_or_create_by_name(name.capitalize)
end
end
end
end
答案 2 :(得分:0)
尝试使用.capitalize
e.g。 “title”.capitalize将成为“标题”
答案 3 :(得分:0)
弗朗西斯说,在你的控制器中使用.capitalize
我用这个
@article= Article.new(params[:article])
@article.name = @article.title.capitalize
@article.save