首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails -大写文章标签和标题

Rails -大写文章标签和标题
EN

Stack Overflow用户
提问于 2011-05-25 18:26:36
回答 4查看 1.4K关注 0票数 2

我试图找到一种方法,以大写的第一个字母的所有标题和标签时,用户提交一篇文章。我可以使用capitalize方法,但是我要把它添加到控制器代码块的什么地方才能工作呢?

Thx

控制器/文章_控制器:

代码语言:javascript
运行
复制
def new
  @article = Article.new

  respond_to do |format|
   format.html # new.html.erb
   format.xml  { render :xml => @article }
 end
end

控制器/标记控制器:

代码语言:javascript
运行
复制
class TagsController < ApplicationController
    def show
      @tag = Tag.find(params[:id])
    @articles = @tag.articles
  end
end

模型/文章:

代码语言:javascript
运行
复制
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
 ...
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-05-25 23:12:16

我会这样做,以迫使它们在储蓄之前被大写。

代码语言:javascript
运行
复制
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
EN

Stack Overflow用户

发布于 2011-05-25 19:39:42

你计划在哪里利用它?在保存到数据库之前?或者当你向用户展示它的时候?

有两种方法可以做到这一点:

使用rail的titleize functioncapitalize

或者使用CSS执行此操作:

代码语言:javascript
运行
复制
 <p class="tag">im a tag</p>

 #CSS
 .tag {
   text-transform:capitalize;
 }
票数 3
EN

Stack Overflow用户

发布于 2011-05-25 19:39:02

尝试使用.capitalize

例如,"title".capitalize将生成"Title“

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6122967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档