小编Mir*_*318的帖子

Rails 5—如何添加 UUID 列

UUIDRails 5 中关于s 的文档似乎并不多。我找到的只是以下代码:

create_table :users, id: :uuid do |t|
  t.string :name
end
Run Code Online (Sandbox Code Playgroud)

如果您正在创建一个表,这很有效,但是如果您正在更新一个已经存在的表呢?

如何在表格中添加UUID列?

mysql uuid rails-migrations ruby-on-rails-5

4
推荐指数
2
解决办法
1万
查看次数

选择器视图的替代方案

是否有任何其他 UI 对象用于在非选择器视图的变量之间进行选择?

我对 iOS 开发非常陌生,我想创建一个用户填写表单的应用程序。

要在一小组变量之间进行选择,例如“男性”或“女性”以及“大学”、“高中”或“儿童”,我更喜欢一个下拉列表,但我能找到的唯一接近的东西是一个选择器视图。问题是选择器视图很大,当只有 2 或 3 个变量时似乎没有必要。

uipickerview ios

3
推荐指数
1
解决办法
2765
查看次数

UITextField在选中时清除,但如果没有输入则还可以恢复数据

我有一个带有UITextFields的表,我希望这样做,以便在选择文本字段时,清除当前信息(以允许新输入),但如果用户决定(在选择之后)他们不想更改它,我希望他们能够点击其他地方,之前的数据重新出现在文本字段中.

是否有捷径可寻?

uitextfield ios

3
推荐指数
1
解决办法
5377
查看次数

(CSS) 倾斜 img 框架而不扭曲图像

我正在制作一个包含许多倾斜元素的网站,如下所示:

在此处输入图片说明

这还不错,有些 CSS 转换可能会扭曲它。但是这个怎么样:

在此处输入图片说明

图像没有失真,只是框架以倾斜的方式裁剪。最简单/最好的方法是什么?

html css skew

3
推荐指数
1
解决办法
1万
查看次数

Rails 迁移——暂时忽略外键约束?

我正在尝试将表的id字段更改为uuid

这是我的代码:

class AddUuidToProjects < ActiveRecord::Migration[5.0]
  def up
    add_column :projects, :uuid, :string, limit:36, null: false, first: true
    add_column :projects, :old_id, :integer

    Project.all.each do |p|
      p.update!(old_id: p.id)
    end
    change_table :projects do |t|
      t.remove :id
      t.rename :uuid, :id
    end
    execute "ALTER TABLE projects ADD PRIMARY KEY (id);"

    Project.all.each do |p|
      # has_one image
      Image.find(p.old_id).update!(project: p) 
      # has_many stories
      Story.where(project_id: p.old_id).each do |s|
        s.update!(project: p)
      end
    end
  end
  ...
end
Run Code Online (Sandbox Code Playgroud)

t.remove :id由于外键约束,此迁移在尝试时中断。错误信息是:

Mysql2::Error: Cannot drop column 'id': needed in …
Run Code Online (Sandbox Code Playgroud)

mysql ruby-on-rails foreign-keys rails-migrations ruby-on-rails-5

3
推荐指数
1
解决办法
5766
查看次数

反应-在window.history.popstate上更改组件状态

我有一个React组件,当状态更改时,它会将歌曲ID推送到url。我的问题是,当用户在浏览器上单击“后退”时,我需要更改SongApp组件的状态。我该怎么做呢?

class SongApp extends React.Component {
  constructor(props) {
    super(props);

    this.state = {
      song: props.songId
    }

    this.setSong = this.setSong.bind(this);
  }

  setSong(e) {
    var songId = e.target.id;
    this.setState({song: songId})
    window.history.pushState({song: songId}, '', '?s='+songId)
  }

  render() {
    var id = this.state.song;

    var content = id ? <SongDisplay lyrics={ this.props.songData[id].lyrics } /> : <SongIndex songData={this.props.songData} setSong={this.setSong}/>
    return(
      <div className="song-app">
        {content}
      </div>
    )
  }
}

window.addEventListener('popstate', function(event) {
  console.log('popstate fired!');
  debugger;
  if(event.state.song) {
    // change SongApp state
  }
});
Run Code Online (Sandbox Code Playgroud)

html5-history reactjs

3
推荐指数
1
解决办法
3504
查看次数

React——给dangerouslySetInnerHTML子元素添加一个点击监听器

我有这个 html 文本:

"<span id='capo' class='capo' data-capo=3>Capo 3</span>"
Run Code Online (Sandbox Code Playgroud)

这是通过插入的较大 html 的一部分 dangerouslySetInnerHTML

我有一个这样的听众:

componentDidMount() {
  document.getElementById('capo').addEventListener('click', this.changeKey);
}
Run Code Online (Sandbox Code Playgroud)

然而,这只适用于一键点击——之后侦听器不存在。我猜是因为 React 已经替换了组件(因为我更改了 中的状态this.changeKey),因此侦听器不再存在。

如何可靠地为 React 组件设置侦听器?

reactjs

3
推荐指数
1
解决办法
1255
查看次数

slim 多行字符串

我想在一个细长的模板中有一串多行,如下所示:

style
  |  .card {
  |    height: 100px;
  |    text-align: center;
  |  }
Run Code Online (Sandbox Code Playgroud)

目前这可行,但这意味着我必须放在|每一行的开头,这真的很烦人。

有什么办法可以让多行字符串变成 slim 吗?

ruby-on-rails slim-lang

3
推荐指数
1
解决办法
2627
查看次数

查看当前可用的所有实例变量?(红宝石)

我被要求从事一个大型项目(已经完成了一半)。我正在处理的一个文件是这样开始的:

<div class="table-responsive">
  <table class="table">
    <% if @incidents.present? %>
      <br>
      <thead>
Run Code Online (Sandbox Code Playgroud)

我不知道@incidents 存在,直到我看到它被引用。这让我想知道——还有哪些其他实例变量可供我使用?我怎么会知道?

因为这是一个有许多文件交互的大项目,我不想只看控制器或类似的东西,我想要一种方法来记录代码中特定点可用的所有实例变量

ruby ruby-on-rails

2
推荐指数
1
解决办法
1339
查看次数

Rails枚举的否定范围(如果没有)

enumusers表中使用一列。我希望能够找到所有未挂起的用户。这是我当前的代码:

enum approval_status: [:pending, :approved, :declined]

User.where.not(approval_status: :pending)
Run Code Online (Sandbox Code Playgroud)

但是,SQL查询变为:

User Load (0.5ms)  SELECT `users`.* FROM `users` WHERE (`users`.`approval_status` != NULL)
Run Code Online (Sandbox Code Playgroud)

无论我输入什么枚举值,SQL都将其转换为 NULL

我如何获得所有用户,但不包括approval_status列的特定值?

scope ruby-on-rails

2
推荐指数
2
解决办法
1776
查看次数