我正在铁路广播上练习一些铁轨,并且遇到了我想要了解的东西.
我没有得到验证方法中的"自我"所做的事情.所以我删除了它并测试了我的应用程序的登录,看它是否会显示错误,它确实:
error:
**NoMethodError in SessionsController#create
undefined method `authenticate' for #<Class:0x00000102cb9000**>
Run Code Online (Sandbox Code Playgroud)
如果有人能够准确解释"自我"正在做什么,我真的很感激.我试图弄清楚到底发生了什么,但无法理解它.
方法在模型中定义并在sessions_controller中调用..我一直在不断地删除我的应用程序并从头开始获取它的内容并且每次我重新开始时我的许多事情都对我有意义但是我坚持"自我" .
我只是那种喜欢理解为什么有效的人.
控制器:
def create
user = User.authenticate(params[:email], params[:password])
if user
session[:user_id] = user.id
redirect_to root_path, :notice => "Logged In"
else
flash.now.alert = "Invalid credentials"
render "new"
end
end
Run Code Online (Sandbox Code Playgroud)
模型:
def self.authenticate(email, password)
user = find_by_email(email)
if user && user.password_hash == BCrypt::Engine.hash_secret(password, user.password_salt)
user
else
nil
end
end
Run Code Online (Sandbox Code Playgroud) ruby rubygems ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1
我已经为我的网站创建了一个注册和登录,所有验证都适用于注册和登录.用户提供有效凭据后,他/她将使用欢迎消息登录到成员区域,该消息显示Hello first_name last_name ..基本上从数据库中获取名字和姓氏.
我想做的任何方法是将成员区域限制为仅登录用户.其他任何人都将被重定向到主页或登录页面,或者我决定将其重定向到哪里.
我使用了ci_sessions,它存储在我的数据库中的表"ci_sessions"中.Session_id,ip_address,user_agent,last_activity和user_data是列.所以我猜这是某种形式的安全性,而不是单独存储在用户浏览器上的cookie还有更多.
现在无论如何要阻止除登录用户以外的其他人访问我的网站成员区域,例如http://example.com/member_area我在我的控制器中使用一个简单的if语句作为成员区域:
if (! $this->session->userdata('first_name'))
{
redirect('login');
}
Run Code Online (Sandbox Code Playgroud)
这将检查尝试访问成员区页面的人是否在我的ci_sessions表中的user_data中存储了某种数据,例如first_name,如果允许,则允许他们访问该页面,这意味着他们必须已登录并仍然具有一个活跃的会议.
如果在数据库中找不到任何内容,则会将其重定向到网站登录页面.我想知道的是,有更好的方法吗?我现在这样做的方式足够安全吗?
以下是我的型号代码:
<?php
class Current_User {
private static $user;
private function __construct() {}
public static function user() {
if(!isset(self::$user)) {
$CI =& get_instance();
$CI->load->library('session');
if (!$user_id = $CI->session->userdata('user_id')) {
return FALSE;
}
if (!$u = Doctrine::getTable('User')->find($user_id)) {
return FALSE;
}
self::$user = $u;
}
return self::$user;
}
public static function login($email, $password) {
// get User object by email
if ($u = Doctrine::getTable('User')->findOneByEmail($email)) { …Run Code Online (Sandbox Code Playgroud) 将first_name和last_name存储在2个单独的列中是否更好?
或者将两个存储在一列是否可以?
如何使用jquery删除除最后2个之外的所有类div?
我有一组在.comment_container类中显示的注释.当显示所有评论时,默认情况下显示特定微博的所有评论列表,最近显示的最近2个.
但是,如果用户在单击以查看所有评论之前键入评论,则此评论会添加到列表中,现在最近有3条评论显示.由于我设置了一些后端代码的方式,因此当单击show all链接时,会导致最近最少的注释显示两次.
不需要了解细节,但我决定要做的是计算总div和总数除去所有div除了2(列表中最后2个是最近的).
如何使用jquery实现此目的?
亲切的问候
当使用 a 时,这似乎不会自动发生text area,但在使用text fields.
例如,在成功的 ajax 请求之后,我做了一些事情,并在代码的最后一行,我focus向text area.
$('textarea').focus();
Run Code Online (Sandbox Code Playgroud)
这会导致光标显示,但它不会按预期闪烁,直到我自己单击文本区域。
这是默认行为吗?有没有办法获得我想要的行为,即使光标闪烁?
亲切的问候
我不能使用initWithNibName:bundle see,因为我现在正在使用最新的XCode(5).经过一些研究,我找到了另一种选择:initWithCoder.
例:
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self){
// code here
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
我想要了解的是这是如何替代initWithNibName的?
目前正在学习ios的大书呆子牧场书,这本书是为ios6和之前版本的xode编写的,并试验了coreLocation框架.
在下面的代码中,我已经替换了initWithNibName.我也在早期的教程中使用相同的初始化程序完成了这项工作,但如果我不完全理解一章,我就无法继续学习教程.苹果文档并不总是有意义的.通常,stackoverflow答案和重新阅读的组合有助于事物陷入困境.
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self){
//create location manager object
locationManager = [[CLLocationManager alloc] init];
//there will be a warning from this line of code
[locationManager setDelegate:self];
//and we want it to be as accurate as possible
//regardless of how much time/power it takes
[locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
//tell our manager to start looking for …Run Code Online (Sandbox Code Playgroud) 这不可能吗?
我以为我会清理我的一些代码并将db查询放在只有它们所属的模型中,并将属于控制器的所有其他代码放在控制器中.
现在我不断得到未定义的变量错误.这不是问题,但我正在尝试解决如何在文件之间调用变量.
我只想在注册时生成的随机哈希值存储在一个变量中,因为这是我在锚点中使用的变量,用于发送给用户电子邮件的"点击此处激活帐户"链接.
我还在方法中使用相同的变量,将电子邮件中URL末尾的uri哈希与数据库中存储的哈希值进行比较..以便用户确认其帐户并将数据库中的"状态"更新为1 (活性).
我真的很感激一些建议.我很享受这个学习过程.失眠,但享受它,因为它让我从逻辑上思考.
使用faker用假用户填充我的数据库,我有一个验证规则,确保用户名是唯一的,不能多次注册.
当我运行rake db:populate它永远不会达到1000它会在它到达之前的某个时间停止并且因为我正在使用create!它向我展示了我需要查看的内容:Usernname已经注册.
我的问题是,有一种方法可以在用户名中添加一个数字,每次它都会在数字增加时回来吗?这样,没有用户名将是相同的.
例如
john1 pete2 sally3 smith4 luke5 john6 sally7
等等...
或者是否有其他方法可以确保没有用户名出现多次?
namespace :db do
namespace :development do
desc "Create user records in the development database."
task :populate => :environment do
require 'faker'
1000.times do
User.create!(
:username => Faker::Internet.user_name,
:email => Faker::Internet.email,
:password => "greatpasswordhuh"
)
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
亲切的问候
ruby rubygems ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1
我创建了一个自定义文本字段,我想利用结合。为了在文本字段中的文本更改时收到通知,我目前使用自定义修饰符。它运行良好,但我希望此代码可以在我的 CustomTextField 结构中。
我的 CustomTextField 结构符合 UIViewRepresentable。在这个结构体中,有一个名为 Coordinator 的 NSObject 类,它符合 UITextFieldDelegate。
我已经在使用其他 UITextField 委托方法,但找不到完全符合我使用自定义修饰符所做的工作的方法。有些方法很接近,但并不完全按照我希望的方式行事。无论如何,我觉得最好将这个新的自定义 textFieldDidChange 方法放在 Coordinator 类中。
这是我的自定义修饰符
private let textFieldDidChange = NotificationCenter.default
.publisher(for: UITextField.textDidChangeNotification)
.map { $0.object as! UITextField}
struct CustomModifer: ViewModifier {
func body(content: Content) -> some View {
content
.tag(1)
.onReceive(textFieldDidChange) { data in
//do something
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的 CustomTextField 用于 SwiftUI 视图,并附加了我的自定义修饰符。当文本字段发生变化时,我可以做一些事情。修改器也使用Combine。它工作得很好,但我不希望此功能采用修饰符的形式。我想在我的 Coordinator 类中使用它,以及我的 UITextFieldDelegate 方法。
这是我的 CustomTextField
struct CustomTextField: UIViewRepresentable {
var isFirstResponder: Bool = false
@EnvironmentObject var authenticationViewModel: AuthenticationViewModel
func makeCoordinator() …Run Code Online (Sandbox Code Playgroud) 我不知道到底是什么,但我正在尝试使用GSUB,然后我决定不再使用它,所以将我的link_to参数更改回:
<%= link_to root_url(@user.username), @user.username %>
Run Code Online (Sandbox Code Playgroud)
现在我不断收到这个错误:nil的未定义方法`gsub':NilClass
当我从我的show文件中删除整行时,一切都很好.
或者如果我改成它:
<%= link_to root_url(:user => @user.username), @user.username %>
Run Code Online (Sandbox Code Playgroud)
就像它已经混淆了一些如何并且认为我仍然在使用gsub方法时,我不是.我已经测试或url帮助程序,如login,password_reset等,他们都工作正常.它似乎只是用root_url来做这件事.
在我遇到这个问题之前,我还从昨天克隆了我的网站回购并猜猜是什么?同样的错误..
我从未对编程感到沮丧.
有什么我可以清楚的吗?我已经尝试清除tmp文件夹中的所有内容仍然没有运气.
路线:
Mysite::Application.routes.draw do
resources :users
resources :sessions
resources :passwords
root :to => "users#new"
match 'success' => "users#success"
match 'login' => "sessions#new"
match 'logout' => "sessions#destroy"
match 'reset_password' => "passwords#new"
match 'setup_new_password' => "passwords#edit"
match ':username' => "users#show"
end
Run Code Online (Sandbox Code Playgroud) ruby rubygems ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1
mysql ×3
php ×3
ruby ×3
rubygems ×3
codeigniter ×2
javascript ×2
jquery ×2
cocoa ×1
cocoa-touch ×1
combine ×1
database ×1
methods ×1
nib ×1
objective-c ×1
session ×1
swift ×1
swiftui ×1
uitextfield ×1