Php Post.Username不会显示在haml中吗?

Php Post.Username不会显示在haml中吗?,php,ruby-on-rails,ruby,devise,haml,Php,Ruby On Rails,Ruby,Devise,Haml,好吧,我想这可能是一个非常直截了当的问题。我似乎破坏了我的应用程序的一个功能,它显示了提交帖子的人的用户名(在我的例子中是“pin”) 这一切都发生在我将用户名添加到数据库(Desive)的时候,因为以前我只显示电子邮件地址,觉得这不是我真正想要的 Tl;dr:=pin.user.username(app/views/pins/index.html.haml)不显示提交帖子的人的用户名。但是,它将显示带有pin.user.email的电子邮件 这是我的Pin控制器(我的箱子中的Pin是Desiv

好吧,我想这可能是一个非常直截了当的问题。我似乎破坏了我的应用程序的一个功能,它显示了提交帖子的人的用户名(在我的例子中是“pin”)

这一切都发生在我将用户名添加到数据库(Desive)的时候,因为以前我只显示电子邮件地址,觉得这不是我真正想要的

Tl;dr:=pin.user.username(app/views/pins/index.html.haml)不显示提交帖子的人的用户名。但是,它将显示带有pin.user.email的电子邮件

这是我的Pin控制器(我的箱子中的Pin是Desive中的Post)

我的模式为用户显示了这一点

  add_index "pins", ["user_id"], name: "index_pins_on_user_id"

create_table "users", force: true do |t|
t.string   "email",                  default: "", null: false
t.string   "encrypted_password",     default: "", null: false
t.string   "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
t.integer  "sign_in_count",          default: 0,  null: false
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
t.string   "current_sign_in_ip"
t.string   "last_sign_in_ip"
t.datetime "created_at"
t.datetime "updated_at"
t.string   "username"
end
我已经附上了我的git,以防你需要一些具体的细节
您的问题不是haml,而是您试图显示的用户名似乎是空的。你的haml结构看起来很好。 如您的
pin_参数中所述,不允许使用
用户名
,因此请确保允许并将其保存到数据库中。比你的haml还管用

删除

attr_accessor :username

def username=(username)
  @username = username
end

从您的
user.rb
模型文件中,它会弄乱ActiveRecord

您应该将您的问题重新构造为一个最小的完整可验证示例:。现在,任何能够帮助您的人都必须检查您的整个代码库以了解发生了什么。@JChrist谢谢您的提示!我会看看我怎么收拾的。对不起。我不太了解haml,但是,在你的代码上,我在你的pins\u控制器中找到了“attr\u accessor:username”。似乎对您的架构没有任何参考。也许会做些“干扰”?@r我不知道什么是干扰。我编写ruby代码才几天。我已经从我的pins控制器中删除了attr_accessor:username,因为我注意到我的应用程序控制器中已经有了它。我已经用我的模式更新了主要帖子,因为这可能会有用。@Iceman谢谢!在从User.rb文件中删除attr_accessor:username之后,它似乎已经修复了我的问题,并且我确信按照KcUS_unico的建议将:username添加到我的pin_参数中。谢谢你们两位的帮助!我真的很感激。我已经更新了我的pins_控制器,包括:def pin_params params.require(:pin)。permit(:title,:description,:image,:username)结束,并在检查用户是否有@u=user的用户名后。所有这些都显示了一个用户名:created_在:“2017-02-06 18:47:44”,updated_在:“2017-02-11 12:54:04”,用户名:“ultralight”>但是我的index.html.haml仍然没有显示创建pin的人的用户名。你应该确保你也可以在控制台中访问这样的用户名。pin.user.username。haml很好。谢谢你。我感谢你的帮助!
  add_index "pins", ["user_id"], name: "index_pins_on_user_id"

create_table "users", force: true do |t|
t.string   "email",                  default: "", null: false
t.string   "encrypted_password",     default: "", null: false
t.string   "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
t.integer  "sign_in_count",          default: 0,  null: false
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
t.string   "current_sign_in_ip"
t.string   "last_sign_in_ip"
t.datetime "created_at"
t.datetime "updated_at"
t.string   "username"
end
attr_accessor :username

def username=(username)
  @username = username
end