午後はみんな、
曲名、曲の文字列フィールド、および user_id フィールドを持つ投稿モデルがあります。ユーザーは、最大 10,000 文字の新しい曲を作成できます。短い曲を保存すると、全体が問題なく表示されますが、ユーザーが400文字を超える長い曲を入力すると、そのほとんどが切り取られて約200文字しか表示されないように見えます。編集時に同じことが起こります。歌の残り、それはまだそれを切り取ります。データベースはMysqlであり、コンソールで確認すると、完全なエントリも保存されていないようです。曲は、ETWR[TREW] | などのキーボード形式で書かれています。WEER。私はグーグルを持っていましたが、これらの線に沿って何も見つかりませんでした.
私のコードは次のとおりです。
post.rb
class Post < ActiveRecord::Base
attr_accessible :song, :song_name, :user_id, :rating
has_many :comments, dependent: :destroy
has_many :ratings, dependent: :destroy
belongs_to :user
before_save :rating
validates_presence_of :user_id
validates :song_name, presence: true, length: { maximum: 70 }
validates :song, presence: true, length: { maximum: 10000 }
default_scope order: "posts.created_at DESC"
posts_controller.rb
def show
@post = Post.find(params[:id])
@comments = @post.comments
@ratings = @post.ratings
respond_to do |format|
format.html
format.json { render json: @post }
end
end
def new
@post = Post.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @post }
end
end
def edit
@post = Post.find(params[:id])
end
def create
@post = current_user.posts.build(params[:post])
respond_to do |format|
if @post.save
format.html { redirect_to @post, success: 'Post was successfully created.' }
format.json { render json: @post, status: :created, location: @post }
else
format.html { render action: "new", error: "please sign in to post" }
format.json { render json: @post.errors, status: :unprocessable_entity }
end
end
end
def update
@post = Post.find(params[:id])
respond_to do |format|
if @post.update_attributes(params[:post])
format.html { redirect_to @post, success: 'Post was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit", error: "please try again" }
format.json { render json: @post.errors, status: :unprocessable_entity }
end
end
end
と show.html.erb
<div class="center hero-unit">
<h1><%= @post.song_name %></h1>
<p>Transcript by: <%= @post.user.name %><br/>
Rating: <%= @post.rating %>/10</p>
<br/>
<p><%= raw @post.song %></p>
<br/>
<span class="timestamp">
updated <%= time_ago_in_words(@post.updated_at) %> ago.
</span>
<%= link_to 'Edit', edit_post_path(@post) %>
<br/>
<% if !signed_in %>
please login to rate songs
<% else %>
<%= render partial: "ratings/form", locals: { post_id: @post.id }%>
<% end %>
</div>
<%= render partial: "comments/form", locals: { post_id: @post.id } %>
<%= render partial: "comments/show", locals: { comments: @comments, post_id: @post.id } %>
誰かに何かアイデアがあれば大歓迎です。さらにコードが必要な場合は、質問してください。乾杯するアンディ。