首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何才能使button_to的html输出包含单引号而不是双引号?

如何才能使button_to的html输出包含单引号而不是双引号?
EN

Stack Overflow用户
提问于 2010-10-27 07:53:18
回答 3查看 489关注 0票数 0

我有这样一句话:

代码语言:javascript
复制
<%= button_to 'Post', newpost_path(:type => 'short_note') %>

它输出以下内容:

代码语言:javascript
复制
<form method="post" action="/posts/newpost?type=short_note" class="button-to"><div><input type="submit" value="Add" /></div></form>;

但我需要输出有单引号,而不是双引号。我该怎么做呢?

代码语言:javascript
复制
<form method='post' action='/posts/newpost?type=short_note' class='button-to'><div><input type='submit' value='Add' /></div></form>;
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-27 07:59:33

试试这个:

代码语言:javascript
复制
<%= (button_to 'Post', newpost_path(:type => 'short_note')).gsub('"', '\'') %>
票数 1
EN

Stack Overflow用户

发布于 2010-10-27 20:26:34

rails_root/lib中创建一个名为url_helper_overrides.rb的文件,该文件简单地覆盖按钮to方法。或者,您可以将下面的button_to方法添加到application_helper中。此方法直接取自UrlHelper source in Rails (Github Link),我只是将双引号替换为单引号。

代码语言:javascript
复制
module ActionView
  module Helpers
    module UrlHelper

      def button_to(name, options = {}, html_options = {}) 
        html_options = html_options.stringify_keys
        convert_boolean_attributes!(html_options, %w( disabled ))

        method_tag = ''
        if (method = html_options.delete('method')) && %w{put delete}.include?(method.to_s)
          method_tag = tag('input', :type => 'hidden', :name => '_method', :value => method.to_s)
        end 

        form_method = method.to_s == 'get' ? 'get' : 'post'

        remote = html_options.delete('remote')

        request_token_tag = ''
        if form_method == 'post' && protect_against_forgery?
          request_token_tag = tag(:input, :type => "hidden", :name => request_forgery_protection_token.to_s, :value => form_authenticity_token)
        end 

        url = options.is_a?(String) ? options : self.url_for(options)
        name ||= url 

        html_options = convert_options_to_data_attributes(options, html_options)

        html_options.merge!("type" => "submit", "value" => name)

        ("<form method='#{form_method}' action='#{html_escape(url)}' #{"data-remote='true'" if remote} class='button_to'><div>" +
          method_tag + tag("input", html_options) + request_token_tag + "</div></form>").html_safe
      end
    end
  end
end
票数 1
EN

Stack Overflow用户

发布于 2010-10-27 07:58:44

我想唯一的办法就是gsub(/"/, "'"),但这真的很难看

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

https://stackoverflow.com/questions/4028952

复制
相关文章

相似问题

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