我有一个接收者 ID 和发送者 ID,我正在通过隐藏的表单字段获取它们。这些属性是 attr_accessible,因此它们是可批量分配的。但是,我不希望它受到批量分配。在不必求助于隐藏的表单字段并使接收者和发送者 ID attr_accessible 的情况下,我将如何解决这个问题?
控制器
Class UsersController < ApplicationController
def show
@user = User.find(params[:id])
@first_name = @user.first_name
@last_name = @user.last_name
@wallpost = WallPost.new(params[:wall_post])
@showwallposts = @user.received_wallposts
end
def create
@wallpost = WallPost.create(params[:wall_post])
end
楷模
class WallPost < ActiveRecord::Base
attr_accessible :content, :receiver_id, :sender_id
belongs_to :receiver, :class_name => "User", :foreign_key => "receiver_id"
belongs_to :sender, :class_name => "User", :foreign_key => "sender_id"
end
class User < ActiveRecord::Base
has_many :sent_wallposts, :class_name => 'WallPost', :foreign_key => 'sender_id'
has_many :received_wallposts, :class_name =>'WallPost', :foreign_key => 'receiver_id'
在视图中
<%= form_for(@wallpost, :url => {:action => 'create'}) do |f| %>
<%= f.hidden_field :receiver_id, :value => @user.id %>
<%= f.hidden_field :sender_id, :value => current_user.id %>
<%= f.text_area :content, :class => 'inputbox' %>
<%= f.submit 'Post', class: 'right btn' %>
<% end %>