Ruby on rails 表单中的额外变量-Rails

Ruby on rails 表单中的额外变量-Rails,ruby-on-rails,forms,Ruby On Rails,Forms,我认为我采取了错误的方法,并试图在网上找到最好的方法,但到目前为止没有运气 我有一个项目模型,它有许多消息和用户。这些消息同时属于项目和用户(如下所示)。因此,我需要将项目id和用户id都传递到消息表单中。我知道这应该很简单,但我显然把事情搞砸了。在这个阶段,不确定使用是否一定是最好的主意 任何帮助都会很棒 项目模型: class Project < ActiveRecord::Base belongs_to :user has_many :users has_many

我认为我采取了错误的方法,并试图在网上找到最好的方法,但到目前为止没有运气

我有一个项目模型,它有许多消息和用户。这些消息同时属于项目和用户(如下所示)。因此,我需要将项目id和用户id都传递到消息表单中。我知道这应该很简单,但我显然把事情搞砸了。在这个阶段,不确定使用是否一定是最好的主意

任何帮助都会很棒

项目模型:

 class Project < ActiveRecord::Base
   belongs_to :user
   has_many :users
   has_many :messages, :dependent => :destroy
 end
/共享/_message.html.erb

  <%= form_for @message do |f| %> 
<%= f.label :title %>:
<%= f.text_field :title %><br>

<%= f.label :message  %>
<%= f.text_area :message  %>

<%= f.submit  %>

  <% end %>

非常感谢您的时间,请尝试确定我是如何将用户id/项目id传输到“发件人”字段的,以便在消息创建时传入。

在控制器中设置项目id/用户id,以便最终用户在提交表单时不能修改它们

在消息控制器创建操作中使用@project.messages.build时,应自动设置项目id。 然后可以将用户设置为@message.user=@current\u user

 class Message < ActiveRecord::Base
   attr_accessible :title, :message
   belongs_to :project 
   validates :title, :presence => true
   validates :message, :presence => true
 end
  def show
    @project = Project.find(params[:id])
    @title = @project.title
    @curent_user = current_user
    @message = Message.new    
    begin
      @messages = @project.messages
    rescue ActiveRecord::RecordNotFound      
    end
  end
  <%= form_for @message do |f| %> 
<%= f.label :title %>:
<%= f.text_field :title %><br>

<%= f.label :message  %>
<%= f.text_area :message  %>

<%= f.submit  %>

  <% end %>
 def create
   @message  = @project.messages.build(params[:message])
   if @message.save
     flash[:success] = "Message created!"
     redirect_to root_path
   else
     render 'pages/home'
   end
 end