【发布时间】:2013-11-21 14:59:22
【问题描述】:
我正在尝试进行用户评论,当用户可以向另一个用户写评论时,我使用 :content 创建表评论,使用 :for_user_id 和 by_user_id 创建 user_reviews, 我的路线
devise_for :users
resources :users, :only => [:show] do
resources :reviews
end
class Review < ActiveRecord::Base
belongs_to :user
has_many :users, :through => :users_reviews
end
class User < ActiveRecord::Base
has_many :users_review
has_many :reviews, :through => :users_review
end
class UsersReview < ActiveRecord::Base
belongs_to :user
belongs_to :review
end
class ReviewsController < ApplicationController
def new
@user = User.find(params[:user_id])
@review = @user.reviews.new(params[:for_user_id])
end
def create
@user = User.find(params[:id])
@review = current_user.reviews.build(review_params)
redirect_to root_path
end
def show
end
def index
@user = User.find(params[:for_user_id])
@reviews = Review.all
end
private
def review_params
params.require(:review).permit(:user_id, :user_id, :content)
end
end
我的看法
<%= form_for([@user, @user.reviews.build]) do |f| %>
<%= f.text_area :content, placeholder: "Your review" %>
<%= f.submit "Go", class: "btn btn-large btn-primary" %>
<% end %>
一切正常,但没有数据发送到数据库:\我做错了什么?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4