create 方法不适用于推文 - 包含错误“无法找到没有 ID 的用户”

b.鲱鱼

在此处输入图片说明我正在制作一个 twitter 克隆并尝试制作它,以便用户名出现在他们的推文旁边。我已经通过在种子文件中添加一个用户和一条推文使它工作,但是当我添加一个创建、新方法和一个表单时,它会出现错误“无法找到没有 ID 的用户”并突出显示第一行我的创建方法。不知道是什么问题,谢谢。

class TweetsController < ApplicationController
  before_action :authenticate_user!, :except => [:index, :new, :create]

   def index
    @tweets = Tweet.all.order("created_at DESC")
    @tweet = Tweet.new
  end

  def show
    @tweet = Tweet.find(params[:id])
  end

  def new
    # @tweet = Tweet.new
  end

  def create
    @user = User.find(params[:id])
    @tweet = Tweet.new(tweet_params)
    @tweet.user = @user
    if @tweet.save
    redirect_to tweets_path
  end
  end

  def edit
    @tweet = Tweet.find(params[:id])
  end

  def update
    @tweet = Tweet.find(params[:id])
    @tweet.update(tweet_params)
    redirect_to tweets_path
  end

  private
  def tweet_params
    params.require(:tweet).permit(:user_id,:content)
  end
end

<h1>TWEETS</h1>

<%= simple_form_for [@user,@tweet], id: "form-submit" do |f| %>
   <%= f.input :content, label: "Tweet" %>
   <%= f.input :user %>
   <%= f.button :submit, class: "btn btn-danger" %>
   <% end %>

   <br>

<% @tweets.each do |tweet|  %>
  <ul>
    <li>
      <%= tweet.created_at.strftime("%B %d %Y, %l:%M%P") %> <br>
      <%= tweet.content %>
      <%= tweet.user.username %>

    </li>
  </ul>
<% end %>

真实在Viso

您需要@user在 index 方法中定义一个变量。

您在表单中使用的任何变量都需要在帮助程序、控制器或视图中的某处声明。Rails 约定是通常在控制器中声明它们。

我需要查看您config/routes.rb在图像中收到的错误消息的文件,但是如果您rails routes在命令行中键入,则在使用时可以看到所有可用路由的列表:

simple_form_for [@user, @tweet]

Rails 将解释[@user, @tweet]user_tweets_path,并尝试将表单提交到此路径。该路径在您的config/routes.rb文件中定义

该错误告诉您尚未在路由文件中定义此路径。要定义此路径,您可以将此行添加到路由文件中:

resources :users do
  resources :tweets
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Javascript 包含方法不适用于 MongoDB ID

args的graphql查询不适用于用户ID

没有密码的SSH不适用于用户postgres

Java DatabaseMetaData.getColumns() 方法不适用于所有用户

Codepush不适用于所有android用户

postgis不适用于所有postgres用户

get_user_by('ID',7)适用于用户,但不适用于管理员

尝试创建推文时出现错误“找不到没有 ID 的用户”

提交到用户故事的自动链接不适用于 #ID

Instagram?__ a = 1&max_id = <end_cursor>不适用于公共用户供稿

带有 WebApi 的 Dnn SPA 模块适用于管理员,但不适用于注册用户

包含不适用于 ("\\+") 的方法

电报漫游器不适用于所有用户

bash.bashrc 不适用于所有用户

用户选择:所有继承不适用于Chrome 62

具有Devise Admin用户的Rails Admin不适用于仅API应用程序

绑定不适用于用户实例

localStorage不适用于用户帐户

授权不适用于用户搜索

用户选择不适用于 a:visited

Stripe gem 不适用于 create_reversal 方法

覆盖方法“等于”不适用于99个id

Microsoft Graph API $ filter = name eq'foo'查询不适用于GET工作簿/表格/ {id} /列。没有错误也没有过滤

Jquery UI 自动完成功能不适用于搜索带有 id 的名称

通过其data-id属性选择元素时,不适用于所有元素

jQuery slideDown不适用于具有动态分配ID的元素

几条推文后,使用推文ID使用tweepy查找推文停止-用户暂停错误

Mongodb $ lookup不适用于_id

AppActivate不适用于进程ID