Хорошо, наверное, действительно прямой вопрос ответить, я думаю. Я, кажется, нарушил функцию моего приложения, в котором отображается имя пользователя, отправившего сообщение (в моем случае «pin»).Post.Username не отображается внутри haml?
Все это происходило примерно в то время, когда я добавлял имена пользователей в базу данных (devise), поскольку ранее я только показывал адреса электронной почты и чувствовал, что это не совсем то, что я хотел.
Tl; др: = pin.user.username (приложение/просмотров/контакты/index.html.haml) Не показывать имя человека, отправившего сообщение. Однако он будет отображать электронную почту с pin.user.email.
Вот мой PinsController (Pin в моем случае это сообщение в завещанию)
class PinsController < ApplicationController
before_action :find_pin, only: [:show, :edit, :update, :destroy, :upvote, :downvote]
before_action :authenticate_user!, except: [:index, :show]
attr_accessor :username
def index
@pins = Pin.all.order("created_at DESC")
end
def show
end
def new
@pin = current_user.pins.build
end
def create
@pin = current_user.pins.build(pin_params)
if @pin.save
redirect_to @pin, notice: "Fit was successfully created"
else
render 'new'
end
end
def edit
end
def update
if @pin.update(pin_params)
redirect_to @pin, notice: "Fit was successfully updated"
else
render 'edit'
end
end
def destroy
@pin.destroy
redirect_to root_path
end
def upvote
@pin.upvote_by current_user
redirect_to :back
end
private
def pin_params
params.require(:pin).permit(:title, :description, :image)
end
def find_pin
@pin = Pin.find(params[:id])
end
end
Вот мой index.html.haml
#pins.transitions-enabled
- @pins.each do |pin|
.box.panel.panel-default
= link_to (image_tag pin.image.url), pin
%h2= link_to pin.title, pin
%p.user
Submitted by
= pin.user.username
Моя схема показывает, что это для пользователей
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 просто к вам, вам нужны конкретные детали. https://github.com/thgilartlU/MyFitIdentity
Вы должны перестроить свой вопрос, чтобы быть минимальным полным проверяемым пример: http://stackoverflow.com/help/mcve. Прямо сейчас, любой, кто мог бы вам помочь, должен был пройти всю вашу базу кода, чтобы узнать, что происходит. – JChrist
@ JChrist Спасибо за подсказку! Я посмотрю, как я могу это очистить. – Ultralight
Извините. Я плохо знаю haml, но, серфинг по вашему коду, я нашел «attr_accessor: username» в вашем pins_controller. Кажется, нет никакой ссылки на вашу схему. Может быть, некоторые «помехи»? – rfellons