params
хеш не содержит id
, из-за чего вы получаете эту ошибку.
Просто измените ваше действие создания как
def create
@user = current_user
@tweet = Tweet.new(tweet_params)
@tweet.user = current_user
if @tweet.save
redirect_to tweets_path
end
end
Или
вместо вышеуказанного вы также можете передать user_id
из формы.
<%= simple_form_for @tweet, id: "form-submit" do |f| %>
<%= f.input :content %>
<%= f.hidden_field :user_id, value: current_user.try(:id) %>
<%= f.button :submit, class: "btn btn-danger" %>
<% end %>
, а затем изменить действие создания как
def create
@tweet = Tweet.new(tweet_params)
if @tweet.save
redirect_to tweets_path
end
end
ПРИМЕЧАНИЕ. Предполагается, что вы используете devise gem для аутентификации.