Ruby on rails 集合上的NoMethodError\u选择输入

Ruby on rails 集合上的NoMethodError\u选择输入,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我一直在尝试不同的方法来解决这个问题,这让我发疯 我有一个输入字段: <%= collection_select(:stakeholder, :user_id, User.all, :id, :first_name) %> 有什么想法吗 编辑:添加完整表单视图 <%= simple_form_for([@project, @stakeholder]) do |f| %> <%= f.error_notification %> <div clas

我一直在尝试不同的方法来解决这个问题,这让我发疯

我有一个输入字段:

<%= collection_select(:stakeholder, :user_id, User.all, :id, :first_name) %>
有什么想法吗

编辑:添加完整表单视图

 <%= simple_form_for([@project, @stakeholder]) do |f| %>
 <%= f.error_notification %>

 <div class="form-inputs">
  <%= f.input :first_name %>
  <%= f.input :last_name %>
  <%= f.input :email %>
  <%= f.input :address %>
  <%= f.input :city %>
  <%= f.input :sentiment,  %>
  <%= f.label :tags, "Tags (separated by commas)" %>
  <%= collection_select(:stakeholder, :user_id, User.all, :id, :first_name) %>
  <%= f.button :submit %>
</div>
user.rb

class User < ActiveRecord::Base

belongs_to :account
has_many :stakeholders

def set_default_role
 self.role ||= :user
end

# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :invitable, :database_authenticatable, :registerable, :confirmable,
     :recoverable, :rememberable, :trackable, :validatable
end
干系人.rb

class Stakeholder < ActiveRecord::Base
 belongs_to :project
has_many :notes
belongs_to :user
acts_as_taggable

def full_name
  full_name = "#{first_name.capitalize} #{last_name.capitalize}"
end

end
看看这个


请发表你的观点。我现在可以告诉你,你正在传递一个ID,你的视图希望看到一个像@user这样的对象,但是如果没有看到你的视图,我不能确定。我在上面添加了整个表单视图。/new视图只是将表单呈现为部分。谢谢。这会产生相同的错误。我还发现了简单导航链接的错误,比如:这让我觉得可能我的用户模型在某种程度上搞砸了……然后发布模型,这正是我最初想要的。另外,在您的控制器中,通过添加一行atusers=User.all并将视图中的User.all替换为atusers来逗我开心。当然,at应该被“at”符号取代,所以如果我在评论中不止一次地使用这个符号,我会抱怨。我尝试了@users而不是User.all。它现在在atusers=User.all行上显示控制器中的错误。同样的错误,很有趣。如果您查看Schema.rb,您是否有ID列,或者它可能被错误命名为“user_ID”或类似的东西?Schema.rb中没有ID,尽管我使用的是designe,我可以看到每个用户在rails控制台中都有ID。很奇怪。。。
class Stakeholder < ActiveRecord::Base
 belongs_to :project
has_many :notes
belongs_to :user
acts_as_taggable

def full_name
  full_name = "#{first_name.capitalize} #{last_name.capitalize}"
end

end
collection_select(object, method, collection, value_method,
text_method, options = {}, html_options = {}) public

Returns <select> and <option> tags for the collection of existing
return values of method for object's class. The value returned from
calling method on the instance object will be selected.
<%= f.collection_select(:user_id, @users, :id, :first_name)