我的simple_form代码
<%= simple_form_for @post do |f| %>
<%= f.input :post,:as => :text %>
<%= f.button :submit %>
<% end %>
其中post
是Post.new
而:post
是Post
的列。
由于我的创建方法未按预期保存值,因此我只在:post
中打印了create.html.erb
参数的值,输出为{"post"=>"My sample post"}
。
create.html.erb
@post = params[:post]
params[:post]
为什么要{"post"=>"My sample post"}
代替My sample post
?
答案 0 :(得分:3)
你期待输出错误。输出是正确的。
因为在rails params结构如下所示:
params[:model_name][:attribute_name]
因此,如果您要打印预期结果,请尝试使用params[:post][:post]
代替params[:post]
答案 1 :(得分:1)
你有一个名为post的对象,你将它传递给simple_form_for,所以它将该表单的内容包装在一个名为post的哈希中。这允许rails区分属于该形式内容的属性和不属于该形式的属性。
例如,如果添加了描述字段,with open(bamlist, 'r') as bamlist:
for bam in bamlist: #Opens the 2 files
'Generate data Here'
dataframe = []
for line in data:
line = line.split("\t")
dataframe.append(line[0:4:1])
df = pd.DataFrame(dataframe, columns=['Chromosome', 'Position', 'N', 'BaseCount'])
grouped_df = df.groupby('Chromosome') #groups dataframe into the required 25plots
for df in grouped_df:
density_data = 'Get density data from df'
f, ax = plt.subplots()
sns.kdeplot(density_data, ax=ax, linewidth=1)
pp.savefig()
pp.close()
将如下所示。
params[:post]
我认为这可能有点令人困惑,因为你已经调用了模型和属性'post'。也许如果您将列重命名为“内容”,这将更加清晰。