【发布时间】:2013-10-23 15:05:05
【问题描述】:
我想我需要用户:通过我的协会中的某个地方,但我对此很陌生,所以任何帮助将不胜感激。
为简单起见,假设我有 3 个模型。
Faults
Users
FaultComments
在哪里
Faults - belong_to :user and has_many :fault_comments
Users - has_many :faults and has_many :fault_comments
FaultComments - belongs_to :fault and belongs_to: user
我想做的是能够从故障显示页面添加故障 cmets,目前我有以下内容,但我无法让它全部正常工作。
routes.rb
devise_for :users do
get '/users/sign_out' => 'devise/sessions#destroy'
end
resources :faults
resources :fault_comments
views/faults/show.html.erb
<h3>Add New</h3>
<%= form_for @faultcomment, :url => fault_comments_path(:fault_id => @fault.id, :user_id => current_user.id) do |f| %>
<%= f.text_field :comment %>
<%= f.submit %>
<% end %>
控制器/faults_cmets_controller.rb
def create
@fault = Fault.find(params[:fault_id])
@faultcomment = @fault.fault_comments.new(params[:faultcomment])
@faultcomment.user_id = params[:user_id]
@faultcomment.comment = :comment
if @faultcomment.save
redirect_to faults_path
end
end
【问题讨论】:
-
您遇到了什么错误?
-
它工作得很好,但我确信这无论如何都不是最好的方法。
标签: ruby-on-rails ruby-on-rails-3 has-many-through has-many