Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 关于boolians的Rails 3和SQLite通信_Ruby On Rails 3_Sqlite_Boolean_Windows 7 X64 - Fatal编程技术网

Ruby on rails 3 关于boolians的Rails 3和SQLite通信

Ruby on rails 3 关于boolians的Rails 3和SQLite通信,ruby-on-rails-3,sqlite,boolean,windows-7-x64,Ruby On Rails 3,Sqlite,Boolean,Windows 7 X64,im使用Rails 3.2.8和SQLite 1.3.6 我在更改数据库中的boolian变量时遇到了麻烦 SQLite将“t”和“f”翻译为true和false 此函数不会更新:approved属性(默认为false) 但是更改字符串,如@user.update\u属性(:email,'root@email.org“)将更新电子邮件 我需要某种sqlite适配器吗 我已经安装了activerecord-jdbcsqlite3-adapter,它把我的应用搞砸了,因为我太匆忙了,没有注意到它被弃

im使用Rails 3.2.8和SQLite 1.3.6

我在更改数据库中的boolian变量时遇到了麻烦

SQLite将“t”和“f”翻译为true和false

此函数不会更新
:approved
属性(默认为false)

但是更改字符串,如
@user.update\u属性(:email,'root@email.org“)
将更新电子邮件

我需要某种sqlite适配器吗

我已经安装了
activerecord-jdbcsqlite3-adapter
,它把我的应用搞砸了,因为我太匆忙了,没有注意到它被弃用了:p

我发现了这个线索: 但我不明白我需要做什么才能使Rails和SQLite正确通信,因为我是Rails的新手:)

另外,我认为值得一提的是,我在Windows7x64上运行这个

更新

显然,Rails确实知道如何与Sqlite通信,但是我不知道为什么我的代码不适用于boolians lol

我认为:

<% @users.each do |user| %> 
<tr> 
  <td><%= user.id %></td> 
  <td><%= user.email %></td>
  <td><%= user.approved? %></td>
  <td>
<% if !user.approved? %>
  <%= link_to 'Approve', active_user_path(user), :method => :put %> 
    <% end %> </td> 
</tr> 
<% end %> 
我的路线呢

match "users/:id/activate" => "users#activate", :as => "active_user"

这适用于其他字符串,如用户名、地址等,但不适用于bool的

如果@user上的
approved
列是布尔值,则只需传递true/false,然后让数据库适配器计算出来

@user.update_attribute(:approved, true)

如果@user上的
approved
列是一个布尔值,则只需传递true/false,然后让数据库适配器计算出来

@user.update_attribute(:approved, true)

我通过使用一个整数迁移到我的users表来解决这个问题,我不知道为什么
@user.update\u属性(:approved,true)
没有保存到数据库中,它一定与我的设置有关


我进行了迁移
add\u列:users,:is\u approved,:integer,:default=>0
,当我想激活一个用户时,我只需将整数值翻转为1

我通过使用整数迁移到我的users表来解决这个问题,我不知道为什么
@user.update\u属性(:approved,true)
未保存到数据库,它一定与我的设置有关


我进行了迁移
add_列:users,:is_approved,:integer,:default=>0
,当我想激活一个用户时,我只需将整数值翻转为1

SQLite没有单独的布尔存储类。相反,布尔值存储为整数0(false)和1(true)。
在我发布此内容后不久发现了此问题,但是否有某种适配器允许我在sqlite中使用treu和false?
sqlite没有单独的布尔存储类。相反,布尔值被存储为整数0(false)和1(true)。
在我发布这篇文章后不久就发现了这一点,但是否有某种适配器允许我在sqlite中使用treu和false?我不认为适配器与我的sqlite gem一起提供,我还必须手动从他们的网站获取sqlite exe&dll文件Rails附带了一个sqlite适配器,这就是它与数据库通信的方式。您是否尝试传递
true
而不是
t
?是的,我尝试使用
@user.update\u属性(:approved,true)
调用更新,但它仍然无法将其保存到数据库中,但更新返回true,就好像它成功了,但仍然没有保存新值。肯定还有其他问题。它对我来说工作正常:我不认为适配器与我的sqlite gem一起提供,我还必须从他们的网站手动获取sqlite exe&dll文件Rails附带了一个sqlite适配器,这就是它与数据库的通信方式。您是否尝试传递
true
而不是
t
?是的,我尝试使用
@user.update\u属性(:approved,true)
调用更新,但它仍然无法将其保存到数据库中,但更新返回true,就好像它成功了,但仍然没有保存新值。肯定还有其他问题。它对我来说工作正常:
@user.update_attribute(:approved, true)