Rails不是读取形式输入

时间:2018-03-02 18:39:55

标签: ruby-on-rails

这是我使用Ruby on Rails的前几天,我没有创建一个页面,您可以阅读帖子并发布自己的帖子。 我无法弄清楚为什么我的输入字段无法读取。

告示/ index.html.erb:

<% if @notices.any? %>
    <ol class="notices">
        <%= render @notices %>
    </ol>
<% end %>

<%= form_for @notice do |f| %>
    <%= render 'shared/error_messages', object: f.object %>

    <%= f.label :content %>
    <%= f.text_area :content, placeholder: "Message content" %>

<%= f.submit "Post" %>
<% end %>

控制器

class NoticesController < ApplicationController

  def index
    @notices = Notice.paginate(page: params[:page], :per_page => 6)
    @notice = current_user.notices.new
  end

  def create
    @notices = Notice.paginate(page: params[:page], :per_page => 6)
    @notice = current_user.notices.build(content: params[:content])
    if @notice.save
      flash[:success] = "Message posted!"
      redirect_to root_url
    else
      render 'index'
    end
  end

在我已定义资源的路线中:通知

如果我将@notice更改为内容:&#34;某些字符串&#34;我的消息是由适当的用户发布的&#34;一些字符串&#34;作为内容。但是,如果我尝试将表单验证中的内容传递给空输入启动。 你能解释一下我做错了吗?

2 个答案:

答案 0 :(得分:1)

只需写入控制器@notice = current_user.notices.all

即可

答案 1 :(得分:1)

你应该定义:

SQLCommand = ("SELECT TP.UserID, Phone "
    "FROM dbo.SEC_UserProfile as TP (nolock) INNER JOIN dbo.SEC_User as TE "
    "ON TP.UserID = TE.UserID "
    "WHERE TP.UserID LIKE ?")

然后

notices_params
 params.require(:notice).permit(:content)
end